From de389fbe5e5f4f46808dabd92ca291e1a41077cd Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Tue, 25 Feb 2020 11:42:17 +0100 Subject: [PATCH] exactness: avoid leak on leaving scope Before we leave the fucntion here we need to free our temporaray paths variable. CID: 1419860 Reviewed-by: Mike Blumenkrantz Differential Revision: https://phab.enlightenment.org/D11411 --- src/bin/exactness/player.c | 5 ++++- src/bin/exactness/recorder.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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; }