From: Yousong Zhou Date: Tue, 16 Dec 2014 07:00:04 +0000 (+0800) Subject: Fix memory leaks found by using valgrind on test cases. X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ecf0ed555ebc1b8e5b6aba54bb06a907bb4aecf2;p=oweals%2Fuci.git Fix memory leaks found by using valgrind on test cases. Signed-off-by: Yousong Zhou --- diff --git a/cli.c b/cli.c index 6fbbfe9..5511114 100644 --- a/cli.c +++ b/cli.c @@ -360,6 +360,7 @@ static int uci_do_package_cmd(int cmd, int argc, char **argv) { char **configs = NULL; char **p; + int ret = 1; if (argc > 2) return 255; @@ -369,14 +370,17 @@ static int uci_do_package_cmd(int cmd, int argc, char **argv) if ((uci_list_configs(ctx, &configs) != UCI_OK) || !configs) { cli_perror(); - return 1; + goto out; } for (p = configs; *p; p++) { package_cmd(cmd, *p); } - return 0; + ret = 0; +out: + free(configs); + return ret; } static int uci_do_add(int argc, char **argv) diff --git a/list.c b/list.c index faf4494..0d00f81 100644 --- a/list.c +++ b/list.c @@ -346,7 +346,7 @@ uci_lookup_ext_section(struct uci_context *ctx, struct uci_ptr *ptr) goto done; error: - e = NULL; + free(section); memset(ptr, 0, sizeof(struct uci_ptr)); UCI_THROW(ctx, UCI_ERR_INVAL); done: