summaryrefslogtreecommitdiffstats
path: root/src/segtree.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2022-02-15 15:12:20 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2022-02-17 18:33:05 +0100
commitc6e47eb076ce0c24a45f3bd793e6242db4261eb4 (patch)
tree79bfee83b522e49e377409c4a4b4279d3cdc23df /src/segtree.c
parentb0c6deab9396a8017aca73a2385ffbc8e2862829 (diff)
segtree: memleak get element command
Release removed interval expressions before get_set_interval_find() fails. The memleak can be triggered through: testcases/sets/0034get_element_0 Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/segtree.c')
-rw-r--r--src/segtree.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/segtree.c b/src/segtree.c
index f721954f..a61ea3d2 100644
--- a/src/segtree.c
+++ b/src/segtree.c
@@ -788,6 +788,8 @@ int get_set_decompose(struct set *cache_set, struct set *set)
mpz_sub_ui(i->key->value, i->key->value, 1);
range = get_set_interval_find(cache_set, left, i);
if (!range) {
+ expr_free(left);
+ expr_free(i);
expr_free(new_init);
errno = ENOENT;
return -1;