diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2022-02-15 15:12:20 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2022-02-17 18:33:05 +0100 |
commit | c6e47eb076ce0c24a45f3bd793e6242db4261eb4 (patch) | |
tree | 79bfee83b522e49e377409c4a4b4279d3cdc23df /src | |
parent | b0c6deab9396a8017aca73a2385ffbc8e2862829 (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')
-rw-r--r-- | src/segtree.c | 2 |
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; |