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

