summaryrefslogtreecommitdiff
path: root/drivers/dfu
diff options
context:
space:
mode:
authorSam Protsenko <semen.protsenko@linaro.org>2018-07-13 16:35:46 +0300
committerMarek Vasut <marex@denx.de>2018-08-08 22:22:08 +0200
commit87a8ca985bc0b63f8ad166b648f54496e097101e (patch)
treeccbb4478810958783c5ab87658df44be34bf1c34 /drivers/dfu
parentfeaa7856f50ec5bbf843d533ee223aedd845452c (diff)
dfu: Fix memory leak in dfu_init_env_entities()
In case of error in dfu_init_env_entities(), env_bkp will leak. Fix it by providing single return path. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Diffstat (limited to 'drivers/dfu')
-rw-r--r--drivers/dfu/dfu.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
index a3c09334b7..5b9abd685d 100644
--- a/drivers/dfu/dfu.c
+++ b/drivers/dfu/dfu.c
@@ -56,7 +56,7 @@ int dfu_init_env_entities(char *interface, char *devstr)
{
const char *str_env;
char *env_bkp;
- int ret;
+ int ret = 0;
#ifdef CONFIG_SET_DFU_ALT_INFO
set_dfu_alt_info(interface, devstr);
@@ -71,11 +71,12 @@ int dfu_init_env_entities(char *interface, char *devstr)
ret = dfu_config_entities(env_bkp, interface, devstr);
if (ret) {
pr_err("DFU entities configuration failed!\n");
- return ret;
+ goto done;
}
+done:
free(env_bkp);
- return 0;
+ return ret;
}
static unsigned char *dfu_buf;