From: Stephen Warren Date: Tue, 10 Jun 2014 16:06:41 +0000 (-0600) Subject: dfu: free entities when parsing fails X-Git-Tag: submit/tizen/20160318.071304~246 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5d96a5b1e62c193e54c959331abfae354bd1063f;p=profile%2Fcommon%2Fplatform%2Fkernel%2Fu-boot-artik.git dfu: free entities when parsing fails When dfu_init_env_entities() fails part-way through, some entities may have been added to dfu_list. These are only removed by dfu_free_entities(). If that function isn't called, those stale entities will still exist the next time dfu_init_env_entities() is called, leading to confusion. Fix do_dfu() to ensure that dfu_free_entities() is always called, to avoid this confusion. Signed-off-by: Stephen Warren Acked-by: Lukasz Majewski Tested-by: Lukasz Majewski --- diff --git a/common/cmd_dfu.c b/common/cmd_dfu.c index 4bff15730..4db8e3286 100644 --- a/common/cmd_dfu.c +++ b/common/cmd_dfu.c @@ -39,8 +39,9 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) ret = dfu_init_env_entities(interface, simple_strtoul(devstring, NULL, 10)); if (ret) - return ret; + goto done; + ret = CMD_RET_SUCCESS; if (argc > 4 && strcmp(argv[4], "list") == 0) { dfu_show_entities(); goto done; @@ -73,7 +74,7 @@ done: if (dfu_reset()) run_command("reset", 0); - return CMD_RET_SUCCESS; + return ret; } U_BOOT_CMD(dfu, CONFIG_SYS_MAXARGS, 1, do_dfu,