diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-04-09 22:58:27 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-04-10 01:11:41 +0200 |
commit | 88e22aa97d85ac2142e4298aef7dafe29d7ae89a (patch) | |
tree | 394b0d101884aa24350f0c089ded10dd9e68107b /src | |
parent | fbe27464dee4588d90649274925145421c84b449 (diff) |
src: memleak in expressions
Fix memleak in set element and hash expressions destroy path.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/expression.c | 1 | ||||
-rw-r--r-- | src/hash.c | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/expression.c b/src/expression.c index 0edc1d22..eece12e4 100644 --- a/src/expression.c +++ b/src/expression.c @@ -1097,6 +1097,7 @@ static void set_elem_expr_destroy(struct expr *expr) { xfree(expr->comment); expr_free(expr->key); + stmt_free(expr->stmt); } static void set_elem_expr_clone(struct expr *new, const struct expr *expr) @@ -56,6 +56,11 @@ static void hash_expr_clone(struct expr *new, const struct expr *expr) new->hash.type = expr->hash.type; } +static void hash_expr_destroy(struct expr *expr) +{ + expr_free(expr->hash.expr); +} + const struct expr_ops hash_expr_ops = { .type = EXPR_HASH, .name = "hash", @@ -63,6 +68,7 @@ const struct expr_ops hash_expr_ops = { .json = hash_expr_json, .cmp = hash_expr_cmp, .clone = hash_expr_clone, + .destroy = hash_expr_destroy, }; struct expr *hash_expr_alloc(const struct location *loc, |