Just recently converted the main user machines students and faculty use
to OpenBSD 6.1.  I've found out that git will abort in one scenario
where there is a directory in the tree where the user has execute
permissions but not read permissions.

I traced down this abort to a getcwd(3) call where git gets EACCES, and
decides the world is ending.  On the Linux server that was retired, the
getcwd(3) call just works.

Some folks suggested to me that getcwd(3) should work just fine in this
scenario, so I installed a FreeBSD VM to see what happens there.

git is perfectly happy there.  That getcwd(3) works just fine.  Ok,
since it's not just Linux behaving this way, I'm now wondering if this
is a bug in OpenBSD's getcwd(3).  I realize this may also be a POSIX
corner case.

You can duplicate this scenario like this:

$ mkdir -p test/foo
$ chmod 111 test
$ git init --bare test/foo
fatal: unable to get current working directory: Permission denied
$

So, is this a case where OpenBSD interprets POSIX differently?  Is it a
bug?  Is git being stupid here? (This last one is probably yes).

Thanks,
  --Kurt

Reply via email to