diff options
author | Peng Fan <van.freenix@gmail.com> | 2016-05-03 02:24:52 (GMT) |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2016-05-06 18:06:56 (GMT) |
commit | 5d8fae79163e94671956c99654abf48cf49757ba (patch) | |
tree | e3da0f8e08b8a27a097bfae31c694eb32dba5d67 | |
parent | 2bf352f0c1b7f58d4610bc0777e8febbd2dfd5ff (diff) | |
download | u-boot-5d8fae79163e94671956c99654abf48cf49757ba.tar.xz |
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>
-rw-r--r-- | drivers/dfu/dfu.c | 4 |
1 files changed, 3 insertions, 1 deletions
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++; |