diff --git a/src/bin/exactness/player.c b/src/bin/exactness/player.c index 048232e537..0e88914406 100644 --- a/src/bin/exactness/player.c +++ b/src/bin/exactness/player.c @@ -953,8 +953,10 @@ _prg_full_path_guess(const char *prg) { char full_path[PATH_]; if (strchr(prg, '/')) return eina_stringshare_add(prg); - char *paths = strdup(getenv("PATH")); + char *env_path = strdup(getenv("PATH")); Eina_Stringshare *ret = NULL; + char *paths = env_path; + while (paths && *paths && !ret) { char *real_path; @@ -973,6 +975,7 @@ _prg_full_path_guess(const char *prg) paths += strlen(paths); if (colon) paths++; } + free(env_path); return ret; } diff --git a/src/bin/exactness/recorder.c b/src/bin/exactness/recorder.c index 5b529b5b8c..c3f1ced58b 100644 --- a/src/bin/exactness/recorder.c +++ b/src/bin/exactness/recorder.c @@ -305,8 +305,10 @@ _prg_full_path_guess(const char *prg) { char full_path[MAX_PATH]; if (strchr(prg, '/')) return eina_stringshare_add(prg); - char *paths = strdup(getenv("PATH")); + char *env_path = strdup(getenv("PATH")); Eina_Stringshare *ret = NULL; + char *paths = env_path; + while (paths && *paths && !ret) { char *real_path; @@ -325,6 +327,7 @@ _prg_full_path_guess(const char *prg) paths += strlen(paths); if (colon) paths++; } + free(env_path); return ret; }