]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
segtree: restore automerge
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 26 Nov 2019 10:24:16 +0000 (11:24 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 2 Dec 2019 18:25:22 +0000 (19:25 +0100)
Always close interval in non-anonymous sets unless the auto-merge
feature is set on.

Fixes: a4ec05381261 ("segtree: always close interval in non-anonymous sets")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/segtree.c

index 9f1eecc0ae7e115f25dfb28a8e8b92c331df4797..7217dbca08e10be5ac3725d6f49c04b1fa704a34 100644 (file)
@@ -516,7 +516,7 @@ static void segtree_linearize(struct list_head *list, const struct set *set,
                         */
                        mpz_add_ui(p, prev->right, 1);
                        if (mpz_cmp(p, ei->left) < 0 ||
-                           !(set->flags & NFT_SET_ANONYMOUS)) {
+                           (!(set->flags & NFT_SET_ANONYMOUS) && !merge)) {
                                mpz_sub_ui(q, ei->left, 1);
                                nei = ei_alloc(p, q, NULL, EI_F_INTERVAL_END);
                                list_add_tail(&nei->list, list);