From ecf0ed555ebc1b8e5b6aba54bb06a907bb4aecf2 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Tue, 16 Dec 2014 15:00:04 +0800 Subject: [PATCH] Fix memory leaks found by using valgrind on test cases. Signed-off-by: Yousong Zhou --- cli.c | 8 ++++++-- list.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) 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: -- 2.30.2