]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
segtree: memleak in get_set_decompose()
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 3 Oct 2018 10:16:40 +0000 (12:16 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 3 Oct 2018 10:19:35 +0000 (12:19 +0200)
Release set content on error. Moreover, release input set content in
case we finally manage to decompose it.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/segtree.c

index 0d53c83fd837eb7ed09ae60fe90e2de9fb40f98d..dc2554b72acf377ec448e7b2ba31789adb3f586e 100644 (file)
@@ -727,6 +727,7 @@ int get_set_decompose(struct table *table, struct set *set)
                        range = get_set_interval_find(table, set->handle.set.name,
                                                    left, i);
                        if (!range) {
+                               expr_free(new_init);
                                errno = ENOENT;
                                return -1;
                        }
@@ -755,6 +756,7 @@ int get_set_decompose(struct table *table, struct set *set)
                        compound_expr_add(new_init, expr_clone(left));
        }
 
+       expr_free(set->init);
        set->init = new_init;
 
        return 0;