From: Pablo Neira Ayuso Date: Thu, 17 Apr 2025 11:23:10 +0000 (+0200) Subject: Revert "intervals: do not merge intervals with different timeout" X-Git-Tag: v1.1.3~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=63ed8af82ba0e595c571c5f16257186968ff9833;p=thirdparty%2Fnftables.git Revert "intervals: do not merge intervals with different timeout" This reverts commit da0bac050c8b2588242727f9915a1ea8bc48ceb2. This results in an error when adding an interval that overlaps an existing interval in the kernel, this defeats the purpose of the auto-merge feature. Reported-by: Slavko Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/intervals.c b/src/intervals.c index 1ab443bc..bf125a0c 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -162,8 +162,6 @@ static void set_prev_elem(struct expr **prev, struct expr *i, mpz_set(prev_range->high, range->high); } -static struct expr *interval_expr_key(struct expr *i); - static void setelem_automerge(struct set_automerge_ctx *ctx) { struct expr *i, *next, *prev = NULL; @@ -183,9 +181,7 @@ static void setelem_automerge(struct set_automerge_ctx *ctx) range_expr_value_low(range.low, i); range_expr_value_high(range.high, i); - if (!prev || - interval_expr_key(prev)->timeout != interval_expr_key(i)->timeout || - interval_expr_key(prev)->expiration != interval_expr_key(i)->expiration) { + if (!prev) { set_prev_elem(&prev, i, &prev_range, &range); continue; }