Messages in this thread Patch in this message |  | | Date | Sun, 24 Mar 2024 13:56:06 +0800 (CST) | | From | lumingyindetect@163 ... | | Subject | Re:[PATCH] tools:Fix a memory leak bug related to the cmd |
| |
Thank you for your prompt response! It is indeed a wise decision not to release dynamic memory when the tool runs briefly and encounters errors. However, I also noticed in the disas_funcs function in the /linux/tools/objtool/check.c file (line 4617) that a variable named cmd pointing to a dynamic memory area is not being freed (regardless of whether an error occurs). In this case, would it be necessary to add a free(cmd)? 在 2024-03-23 14:55:50,LuMingYin <lumingyindetect@163.com> 写道: In the function 'disas_funcs' defined in the file /linux/tools/objtool/check.c, a pointer variable named 'cmd' is declared (line 4583 of the file). This pointer variable allocates a block of dynamic memory using the 'malloc' function at line 4615. However, after using the memory area pointed to by 'cmd' (line 4619), it is not deallocated, resulting in a memory leak bug. This commit fixes the bug.
Signed-off-by: LuMingYin <lumingyindetect@163.com> --- tools/objtool/check.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/objtool/check.c b/tools/objtool/check.c index eb7e12ebc1d0..486a2a6374f5 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -4617,6 +4617,7 @@ static int disas_funcs(const char *funcs) /* real snprintf() */ snprintf(cmd, size, objdump_str, cross_compile, objname, funcs); ret = system(cmd); + free(cmd); if (ret) { WARN("disassembly failed: %d", ret); return -1; -- 2.25.1 |  |