syscare/0033-upatch-hijacker-fix-memory-leak.patch

44 lines
1.3 KiB
Diff
Raw Normal View History

From a1fa8c08a6605339ac9cb5d9101f4f24c7430f62 Mon Sep 17 00:00:00 2001
From: liuxiaobo <liuxiaobo19@huawei.com>
Date: Thu, 27 Jun 2024 16:22:26 +0800
Subject: [PATCH] upatch-hijacker: fix memory leak
Signed-off-by: liuxiaobo <liuxiaobo19@huawei.com>
---
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