util-lib: Don't propagate EACCES from find_binary PATH lookup to caller
authorChris Down <chris@chrisdown.name>
Wed, 25 Sep 2019 16:09:38 +0000 (17:09 +0100)
committerChris Down <chris@chrisdown.name>
Thu, 26 Sep 2019 08:19:20 +0000 (09:19 +0100)
commit4e1ddb661272ddb2f03d6046369c973657dfdd62
treebdf9120a129766893cc85ef4a40d1e3b5772c2e7
parentafe42aef39d027a8c74e0f5dd1e496b8de5daa95
util-lib: Don't propagate EACCES from find_binary PATH lookup to caller

On one of my test machines, test-path-util was failing because the
find_binary("xxxx-xxxx") was returning -EACCES instead of -ENOENT. This
happens because the PATH entry on that host contains a directory which
the user in question doesn't have access to. Typically applications
ignore permission errors when searching through PATH, for example in
bash:

    $ whoami
    cdown
    $ PATH=/root:/bin type sh
    sh is /bin/sh

This behaviour is present on zsh and other shells as well, though. This
patch brings our PATH search behaviour closer to other major Unix tools.
src/basic/path-util.c