From a1fa8c08a6605339ac9cb5d9101f4f24c7430f62 Mon Sep 17 00:00:00 2001 From: liuxiaobo Date: Thu, 27 Jun 2024 16:22:26 +0800 Subject: [PATCH] upatch-hijacker: fix memory leak Signed-off-by: liuxiaobo --- upatch-hijacker/hijacker/gnu-as-hijacker.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/upatch-hijacker/hijacker/gnu-as-hijacker.c b/upatch-hijacker/hijacker/gnu-as-hijacker.c index 860a84f..886420e 100644 --- a/upatch-hijacker/hijacker/gnu-as-hijacker.c +++ b/upatch-hijacker/hijacker/gnu-as-hijacker.c @@ -48,6 +48,7 @@ int main(int argc, char *argv[], char *envp[]) { // Try to get executable path const char *filename = get_current_exec(); + if (filename == NULL) { return -ENOENT; } @@ -111,9 +112,15 @@ int main(int argc, char *argv[], char *envp[]) (void)unlink(output_file); } + int ret = 0; if (symlink(new_output_file, output_file) != 0) { - return execve(filename, argv, envp); + ret = execve(filename, argv, envp); + goto out; } - return execve(filename, (char* const*)new_argv, envp); + ret = execve(filename, (char* const*)new_argv, envp); +out: + free(new_argv); + + return ret; } -- 2.34.1