Browse Source

Fix memory leaks found by using valgrind on test cases.

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Yousong Zhou 9 years ago
parent
commit
ecf0ed555e
2 changed files with 7 additions and 3 deletions
  1. 6 2
      cli.c
  2. 1 1
      list.c

+ 6 - 2
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)

+ 1 - 1
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: