Am 09.03.2017 um 12:01 schrieb Zenobiusz Kunegunda:
OK, I printed euids inside function calling getcwd(). Every single
EUID is the same and have expected value. The same as any other local
application run by this user. Permissions of every directory in the
path are OK.
/bin/pwd -P inside directory returned exact path and exited with exit
status 0.
Weird.
I tried to reproduce the behavior on FreeBSD 10.3, unsuccessfully. I
tried with Ruby 2.2 from the ports tree and Ruby 2.3 installed with
rbenv, and with git 2.6.4 from the ports tree and a self-compiled
version of the current master branch.
You could try to bisect the issue to find which commit to git caused the
behavior change, but that will be a tedious process (compile and install
an intermediate version, run bundle install up to the point of interest
then hit Ctrl-C, clean up somehow, run "git bisect good" or "git bisect
bad" in the git source tree depending on the outcome of bundle, repeat
ca. twelve times more).
But I suspect the cause of the problem hides somewhere else. Why would
pwd(1) be able to call getcwd(3) just fine, while git gets an EPERM
error for the same call? I'm stumped.
René