From: William Tu Date: Thu, 11 Feb 2016 17:45:08 +0000 (-0800) Subject: expr: Fix memory leak reported by valgrind. X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=45c4387b2d8d21d09c9ee6b73df5664bfee048a8;p=cascardo%2Fovs.git expr: Fix memory leak reported by valgrind. Testcase 1728: ovn -- 5-term mixed expression normalization. expr_clone_cmp (expr.c:1259) expr_clone (expr.c:1284) expr_clone_andor (expr.c:1271) expr_clone (expr.c:1288) expr_normalize_and (expr.c:2137) test_tree_shape_exhaustively (test-ovn.c:926) Signed-off-by: William Tu Signed-off-by: Daniele Di Proietto Co-authored-by: Daniele Di Proietto Signed-off-by: Russell Bryant --- diff --git a/ovn/lib/expr.c b/ovn/lib/expr.c index 316d55701..0b65492ac 100644 --- a/ovn/lib/expr.c +++ b/ovn/lib/expr.c @@ -1789,7 +1789,7 @@ crush_and_numeric(struct expr *expr, const struct expr_symbol *symbol) expr_destroy(expr); return new; } - free(new); + expr_destroy(new); break; } } @@ -1827,7 +1827,7 @@ crush_and_numeric(struct expr *expr, const struct expr_symbol *symbol) &sub->cmp.value, &sub->cmp.mask)) { list_push_back(&or->andor, &sub->node); } else { - free(sub); + expr_destroy(sub); } } free(disjuncts); @@ -1974,7 +1974,7 @@ crush_or(struct expr *expr, const struct expr_symbol *symbol) if (compare_cmps_3way(a, b)) { list_push_back(&expr->andor, &b->node); } else { - free(b); + expr_destroy(b); } } free(subs);