[Ltrace-devel] [PATCH 4/4] Fix memory leak for zero(EXPR)

Peter Wu lekensteyn at gmail.com
Wed Sep 25 22:55:58 UTC 2013


parse_zero does not need allocated memory, remove it and let the caller
free it.

Signed-off-by: Peter Wu <lekensteyn at gmail.com>
---
 read_config_file.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/read_config_file.c b/read_config_file.c
index 55124f6..6e3add4 100644
--- a/read_config_file.c
+++ b/read_config_file.c
@@ -256,7 +256,7 @@ static struct expr_node *parse_argnum(struct locus *loc,
 				      char **str, int *ownp, int zero);
 
 static struct expr_node *
-parse_zero(struct locus *loc, char **str, struct expr_node *ret, int *ownp)
+parse_zero(struct locus *loc, char **str, int *ownp)
 {
 	eat_spaces(str);
 	if (**str == '(') {
@@ -279,7 +279,6 @@ parse_zero(struct locus *loc, char **str, struct expr_node *ret, int *ownp)
 		return ret;
 
 	} else {
-		free(ret);
 		*ownp = 0;
 		return expr_node_zero();
 	}
@@ -366,9 +365,10 @@ parse_argnum(struct locus *loc, char **str, int *ownp, int zero)
 
 		} else if (strcmp(name, "zero") == 0) {
 			struct expr_node *ret
-				= parse_zero(loc, str, expr, ownp);
+				= parse_zero(loc, str, ownp);
 			if (ret == NULL)
 				goto fail_ident;
+			free(expr);
 			free(name);
 			return ret;
 
-- 
1.8.4




More information about the Ltrace-devel mailing list