[U-Boot] [PATCH] dfu: avoid memory leak

When dfu_fill_entity fail, need to free dfu to avoid memory leak.
Reported by Coverity: " Resource leak (RESOURCE_LEAK) leaked_storage: Variable dfu going out of scope leaks the storage it points to. "
Signed-off-by: Peng Fan van.freenix@gmail.com Cc: "Łukasz Majewski" l.majewski@samsung.com Cc: Marek Vasut marex@denx.de --- drivers/dfu/dfu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c index 8f5915e..20dfcbb 100644 --- a/drivers/dfu/dfu.c +++ b/drivers/dfu/dfu.c @@ -468,8 +468,10 @@ int dfu_config_entities(char *env, char *interface, char *devstr) s = strsep(&env, ";"); ret = dfu_fill_entity(&dfu[i], s, alt_num_cnt, interface, devstr); - if (ret) + if (ret) { + free(dfu); return -1; + }
list_add_tail(&dfu[i].list, &dfu_list); alt_num_cnt++;

On Tue, May 03, 2016 at 10:24:52AM +0800, Peng Fan wrote:
When dfu_fill_entity fail, need to free dfu to avoid memory leak.
Reported by Coverity: " Resource leak (RESOURCE_LEAK) leaked_storage: Variable dfu going out of scope leaks the storage it points to. "
Signed-off-by: Peng Fan van.freenix@gmail.com Cc: "Łukasz Majewski" l.majewski@samsung.com Cc: Marek Vasut marex@denx.de
Reviewed-by: Tom Rini trini@konsulko.com

Hi Peng,
When dfu_fill_entity fail, need to free dfu to avoid memory leak.
Reported by Coverity: " Resource leak (RESOURCE_LEAK) leaked_storage: Variable dfu going out of scope leaks the storage it points to. "
Signed-off-by: Peng Fan van.freenix@gmail.com Cc: "Łukasz Majewski" l.majewski@samsung.com Cc: Marek Vasut marex@denx.de
drivers/dfu/dfu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c index 8f5915e..20dfcbb 100644 --- a/drivers/dfu/dfu.c +++ b/drivers/dfu/dfu.c @@ -468,8 +468,10 @@ int dfu_config_entities(char *env, char *interface, char *devstr) s = strsep(&env, ";"); ret = dfu_fill_entity(&dfu[i], s, alt_num_cnt, interface, devstr);
if (ret)
if (ret) {
free(dfu); return -1;
}
list_add_tail(&dfu[i].list, &dfu_list); alt_num_cnt++;
Acked-by: Lukasz Majewski l.majewski@samsung.com
Applied to u-boot-dfu tree.
Tested-at: Odroid U3 (Exynos4412)
Thanks for running coverity.
participants (3)
-
Lukasz Majewski
-
Peng Fan
-
Tom Rini