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.
(cherry picked from commit
4e1ddb661272ddb2f03d6046369c973657dfdd62)
(cherry picked from commit
8282bc61df10dc1f2290c9c351d5ff6fdb157c24)
Gbp-Pq: Name util-lib-Don-t-propagate-EACCES-from-find_binary-PATH-loo.patch
return 0;
}
- last_error = -errno;
+ /* PATH entries which we don't have access to are ignored, as per tradition. */
+ if (errno != EACCES)
+ last_error = -errno;
}
return last_error;