[U-Boot] [PATCH] common: cli_hush: avoid memory leak
Peng Fan
b51431 at freescale.com
Fri Nov 27 03:04:17 CET 2015
Hi Simon,
On Thu, Nov 26, 2015 at 09:49:38AM -0800, Simon Glass wrote:
>Hi Peng,
>
>On 25 November 2015 at 02:16, Peng Fan <Peng.Fan at freescale.com> wrote:
>> Need to free memory avoid memory leak, when error.
>>
>> Signed-off-by: Peng Fan <Peng.Fan at freescale.com>
>> Cc: Simon Glass <sjg at chromium.org>
>> Cc: Tom Rini <trini at konsulko.com>
>> ---
>> common/cli_hush.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/common/cli_hush.c b/common/cli_hush.c
>> index f075459..ab85225 100644
>> --- a/common/cli_hush.c
>> +++ b/common/cli_hush.c
>> @@ -2474,8 +2474,10 @@ static int done_word(o_string *dest, struct p_context *ctx)
>> if (child->argv == NULL) return 1;
>> child->argv_nonnull = realloc(child->argv_nonnull,
>> (argc+1)*sizeof(*child->argv_nonnull));
>> - if (child->argv_nonnull == NULL)
>> + if (child->argv_nonnull == NULL) {
>> + free(str);
>> return 1;
>> + }
>> child->argv[argc-1]=str;
>> child->argv_nonnull[argc-1] = dest->nonnull;
>> child->argv[argc]=NULL;
>> --
>> 2.6.2
>>
>>
>
>Reviewed-by: Simon Glass <sjg at chromium.org>
>
>It looks like there is another memory leak at the 'return 1' immediately above.
My coverity check tool does not report this (:-, but seems this is true memory
leak if child->argv is NULL. Thanks for pointing this out. I'll fix this in V2.
Thanks,
Peng.
>
>Regards,
>Simon
--
More information about the U-Boot
mailing list