[U-Boot] [PATCH 1/1] common: cli: avoid memory leak

Peng Fan van.freenix at gmail.com
Mon Dec 28 06:12:21 CET 2015


Hi Simon,
On Sun, Dec 27, 2015 at 09:22:01PM -0700, Simon Glass wrote:
>Hi Peng,
>
>On 22 December 2015 at 02:14, Peng Fan <van.freenix at gmail.com> wrote:
>> From: Peng Fan <peng.fan at nxp.com>
>>
>> Whether CONFIG_SYS_HUSH_PARSER is defined or not, should always
>> check to free 'buff' to avoid memory leak.
>
>Are you sure? I believe need_buff is only true if the simple parser is
>being used.

If CONFIG_SYS_HUSH_PARSER is defined and len is not -1, need_buff is 1, then
will malloc buffer and assign return value to buff.
But we only free buff, when CONFIG_SYS_HUSH_PARSER is not defined and need_buff is 1.
So I think this may leaks memory.

I am not familar with HUSH PARSER internal. If it can handle the upper case that
I described, then no need this patch.

Regards,
Peng.

>
>>
>> Signed-off-by: Peng Fan <peng.fan at nxp.com>
>> Cc: Tom Rini <trini at konsulko.com>
>> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
>> Cc: Simon Glass <sjg at chromium.org>
>> ---
>>  common/cli.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/common/cli.c b/common/cli.c
>> index fbcd339..119d282 100644
>> --- a/common/cli.c
>> +++ b/common/cli.c
>> @@ -103,9 +103,9 @@ int run_command_list(const char *cmd, int len, int flag)
>>          * is pretty rare.
>>          */
>>         rcode = cli_simple_run_command_list(buff, flag);
>> +#endif
>>         if (need_buff)
>>                 free(buff);
>> -#endif
>>
>>         return rcode;
>>  }
>> --
>> 2.6.2
>>
>
>Regards,
>Simon


More information about the U-Boot mailing list