summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2022-06-23 18:41:21 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2022-06-23 20:08:18 +0200
commit6d1ee9267e7e5e429a84d7bb8a8644f9eebddb22 (patch)
tree93c0385dacb4718c5067e5859499022a0f160955 /src
parent5357cb7b5cb93fc9b20d4d95b093d6b9f86b7727 (diff)
intervals: check for EXPR_F_REMOVE in case of element mismatch
If auto-merge is disable and element to be deleted finds no exact matching, then bail out. Fixes: 3e8d934e4f72 ("intervals: support to partial deletion with automerge") Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/intervals.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/intervals.c b/src/intervals.c
index c21b3ee0..13009ca1 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -421,6 +421,10 @@ static int setelem_delete(struct list_head *msgs, struct set *set,
expr_error(msgs, i, "element does not exist");
err = -1;
goto err;
+ } else if (i->flags & EXPR_F_REMOVE) {
+ expr_error(msgs, i, "element does not exist");
+ err = -1;
+ goto err;
}
prev = NULL;
}