diff options
author | Lukas Fleischer <lfleischer@calcurse.org> | 2020-10-09 23:51:49 -0400 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2020-10-11 09:59:37 -0400 |
commit | 1b40844aa3b7a94fd84533ed6ef78a5c5cbac5f1 (patch) | |
tree | c940256940f8228e50b306617bd1e9fe5800a994 | |
parent | 47fb9b740fcc0f050ada0418a473cdd660eb46cb (diff) | |
download | calcurse-1b40844aa3b7a94fd84533ed6ef78a5c5cbac5f1.tar.gz calcurse-1b40844aa3b7a94fd84533ed6ef78a5c5cbac5f1.zip |
Fix memory leak in run_hook()
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
-rw-r--r-- | src/hooks.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/hooks.c b/src/hooks.c index 8fda0da..b4933af 100644 --- a/src/hooks.c +++ b/src/hooks.c @@ -41,15 +41,15 @@ int run_hook(const char *name) { - char *hook_cmd = NULL, *mesg; + char *hook_path = NULL, *hook_cmd = NULL, *mesg; char const *arg[2]; int pid, ret = -127; - asprintf(&hook_cmd, "%s/%s", path_hooks, name); - if (!io_file_exists(hook_cmd)) + asprintf(&hook_path, "%s/%s", path_hooks, name); + if (!io_file_exists(hook_path)) goto cleanup; - asprintf(&hook_cmd, "%s <&- >&- 2>&-", hook_cmd); + asprintf(&hook_cmd, "%s <&- >&- 2>&-", hook_path); arg[0] = hook_cmd; arg[1] = NULL; @@ -70,6 +70,7 @@ int run_hook(const char *name) } cleanup: + mem_free(hook_path); mem_free(hook_cmd); return ret; } |