]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
segtree: reset element size counter before adding intervals to set
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 26 May 2017 10:49:16 +0000 (11:49 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 26 May 2017 10:49:16 +0000 (12:49 +0200)
Otherwise we get double the real size in terms of set elements during
the interval expansion to individual elements.

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

index 8df82a801ae4a873ce25acc00ba0c3af9e2d3e9f..15e8849cd684d92ead92b0ff6689e1ae3eaf09c1 100644 (file)
@@ -552,6 +552,7 @@ int set_to_intervals(struct list_head *errs, struct set *set,
                return -1;
        segtree_linearize(&list, set, init, &tree, add);
 
+       init->size = 0;
        list_for_each_entry_safe(ei, next, &list, list) {
                if (segtree_debug()) {
                        pr_gmp_debug("list: [%.*Zx %.*Zx]\n",
@@ -566,6 +567,7 @@ int set_to_intervals(struct list_head *errs, struct set *set,
                expr_print(init);
                pr_gmp_debug("\n");
        }
+
        return 0;
 }