Hi Przemyslaw,

> The string of environment variable $dfu_alt_info is duplicated
> by strdup() before parsing its content. The memory leak occurs,
> when dfu fails, because the duplicated variable is freed only
> on command success.
> 
> This simple fix allows calling free() always before the return.
> 
> Signed-off-by: Przemyslaw Marczak <[email protected]>
> Cc: Lukasz Majewski <[email protected]>
> ---
>  drivers/dfu/dfu.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
> index 8f5915e..420631a 100644
> --- a/drivers/dfu/dfu.c
> +++ b/drivers/dfu/dfu.c
> @@ -66,13 +66,11 @@ int dfu_init_env_entities(char *interface, char
> *devstr) 
>       env_bkp = strdup(str_env);
>       ret = dfu_config_entities(env_bkp, interface, devstr);
> -     if (ret) {
> +     if (ret)
>               error("DFU entities configuration failed!\n");
> -             return ret;
> -     }
>  
>       free(env_bkp);
> -     return 0;
> +     return ret;
>  }
>  
>  static unsigned char *dfu_buf;

Applied to u-boot-dfu branch.

Tested at Odroid XU3 and Trats boards.

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to