]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
segtree: memleak get element command
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 15 Feb 2022 14:12:20 +0000 (15:12 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Thu, 17 Feb 2022 17:33:05 +0000 (18:33 +0100)
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>
src/segtree.c

index f721954f76eb2126a7fb9a9ffbddbbfd8673be07..a61ea3d2854af7ec5efb45f0819c595d4b766678 100644 (file)
@@ -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;