summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2019-11-26 11:24:16 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2019-12-02 19:25:22 +0100
commita48c1c00b5419fb39af87a22469f77322dc71b31 (patch)
tree4388809b0c462c4c2aa2ab5f7800e3dd890d77da /src
parentdd44081d91ceaead0a9730f1ab5c8041a4d905e2 (diff)
segtree: restore automerge
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>
Diffstat (limited to 'src')
-rw-r--r--src/segtree.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/segtree.c b/src/segtree.c
index 9f1eecc0..7217dbca 100644
--- a/src/segtree.c
+++ b/src/segtree.c
@@ -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);