diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-09-17 14:32:17 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-09-18 15:28:48 +0200 |
commit | 92673045b55dd58c568a0b31ada4516d55933024 (patch) | |
tree | c5dd0e5fdc8e63e6b6a0a7cd15017d4d2538facc /src/basic | |
parent | cd4ff5aa1176c47a8d9042bbabc974d6e874d39e (diff) | |
download | systemd-92673045b55dd58c568a0b31ada4516d55933024.tar.gz |
basic/path-util: enhance find_executable() for the fixed path case
Diffstat (limited to 'src/basic')
-rw-r--r-- | src/basic/path-util.c | 10 | ||||
-rw-r--r-- | src/basic/path-util.h | 5 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/basic/path-util.c b/src/basic/path-util.c index cecee3a541..a36cf8332c 100644 --- a/src/basic/path-util.c +++ b/src/basic/path-util.c @@ -585,9 +585,9 @@ char* path_join_internal(const char *first, ...) { return joined; } -int find_executable(const char *name, char **ret) { +int find_executable_full(const char *name, bool use_path_envvar, char **ret) { int last_error, r; - const char *p; + const char *p = NULL; assert(name); @@ -604,8 +604,10 @@ int find_executable(const char *name, char **ret) { return 0; } - /* Plain getenv, not secure_getenv, because we want to actually allow the user to pick the binary. */ - p = getenv("PATH"); + if (use_path_envvar) + /* Plain getenv, not secure_getenv, because we want to actually allow the user to pick the + * binary. */ + p = getenv("PATH"); if (!p) p = DEFAULT_PATH; diff --git a/src/basic/path-util.h b/src/basic/path-util.h index 3d52448334..bd8c14903e 100644 --- a/src/basic/path-util.h +++ b/src/basic/path-util.h @@ -88,7 +88,10 @@ int path_strv_make_absolute_cwd(char **l); char** path_strv_resolve(char **l, const char *root); char** path_strv_resolve_uniq(char **l, const char *root); -int find_executable(const char *name, char **filename); +int find_executable_full(const char *name, bool use_path_envvar, char **ret); +static inline int find_executable(const char *name, char **ret) { + return find_executable_full(name, true, ret); +} bool paths_check_timestamp(const char* const* paths, usec_t *paths_ts_usec, bool update); |