lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 24 Mar 2024 13:56:23 +0800 (CST)
From: lumingyindetect@....com
To: "Josh Poimboeuf" <jpoimboe@...nel.org>
Cc: linux-kernel@...r.kernel.org, peterz@...radead.org
Subject: Re:Re: [PATCH] tools:Fix a memory leak related to variable name

Thank&nbsp;you&nbsp;for&nbsp;your&nbsp;prompt&nbsp;response!&nbsp;It&nbsp;is&nbsp;indeed&nbsp;a&nbsp;wise&nbsp;decision&nbsp;not&nbsp;to&nbsp;release&nbsp;dynamic&nbsp;memory&nbsp;when&nbsp;the&nbsp;tool&nbsp;runs&nbsp;briefly&nbsp;and&nbsp;encounters&nbsp;errors.&nbsp;However,&nbsp;I&nbsp;also&nbsp;noticed&nbsp;in&nbsp;the&nbsp;disas_funcs&nbsp;function&nbsp;in&nbsp;the&nbsp;/linux/tools/objtool/check.c&nbsp;file&nbsp;(line&nbsp;4617)&nbsp;that&nbsp;a&nbsp;variable&nbsp;named&nbsp;cmd&nbsp;pointing&nbsp;to&nbsp;a&nbsp;dynamic&nbsp;memory&nbsp;area&nbsp;is&nbsp;not&nbsp;being&nbsp;freed&nbsp;(regardless&nbsp;of&nbsp;whether&nbsp;an&nbsp;error&nbsp;occurs).&nbsp;In&nbsp;this&nbsp;case,&nbsp;would&nbsp;it&nbsp;be&nbsp;necessary&nbsp;to&nbsp;add&nbsp;a&nbsp;free(cmd)?
在 2024-03-24 02:22:09,"Josh Poimboeuf" <jpoimboe@...nel.org> 写道:
On Sat, Mar 23, 2024 at 04:45:26PM +0800, LuMingYin wrote:
> In the elf_create_prefix_symbol function defined in the /linux/tools/objtool/elf.c file, two pointer variables sym and name are defined. The program allocates dynamic memory for the pointer sym using the calloc function at line 822, and for the pointer name using the malloc function at line 824. When the if statement at line 826 returns true, the program returns at line 828. The content of the if statement at line 828 is if (sym==NULL || name==NULL), which checks if either sym or name is NULL. If this condition returns true, it indicates a situation where one of the pointers has successfully allocated memory but the other has not. Therefore, if the if statement returns true, directly returning may lead to memory leak issues. Hence, in the code, I have added checks separately for whether sym and name are NULL, and if they are not NULL, the corresponding dynamic memory spaces are freed.
> 
> Signed-off-by: LuMingYin <lumingyindetect@....com>

Thanks for the patch.  In general we don't care about memory leaks in
objtool (particularly in error or exit paths), as it's a short-running
tool.  When it exits, all the memory will be freed anyway.  So it's
faster to not free the memory manually.

-- 
Josh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ