mirror of
https://github.com/systemd/systemd
synced 2024-10-15 20:45:09 +00:00
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.
This commit is contained in:
parent
afe42aef39
commit
4e1ddb6612
|
@ -651,7 +651,9 @@ int find_binary(const char *name, char **ret) {
|
|||
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;
|
||||
|
|
Loading…
Reference in a new issue