diff options
author | Sam Protsenko <semen.protsenko@linaro.org> | 2018-07-13 16:35:46 +0300 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2018-08-08 22:22:08 +0200 |
commit | 87a8ca985bc0b63f8ad166b648f54496e097101e (patch) | |
tree | ccbb4478810958783c5ab87658df44be34bf1c34 /drivers | |
parent | feaa7856f50ec5bbf843d533ee223aedd845452c (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')
-rw-r--r-- | drivers/dfu/dfu.c | 7 |
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; |