nftables/0031-expression-Set-range-expression-len-field.patch
Phil Sutter 66e3c74b83 nftables-1.1.5-4.el10
* Tue Feb 24 2026 Phil Sutter <psutter@redhat.com> [1.1.5-4.el10]
- spec: Require libnftnl-1.3.0-3 for nftnl_{expr,set_elem}_set_imm() (Phil Sutter) [RHEL-128553]
- tests: py: Adjust payloads to changed userdata printing (Phil Sutter) [RHEL-128553]
- tests: py: Update payload records (Phil Sutter) [RHEL-128553]
- tests: py: objects.t: must use input, not output (Phil Sutter) [RHEL-128553]
- tests: py: tools: Add regen_payloads.sh (Phil Sutter) [RHEL-128553]
- netlink: Make use of nftnl_{expr,set_elem}_set_imm() (Phil Sutter) [RHEL-128553]
- netlink: No need to reference array when passing as pointer (Phil Sutter) [RHEL-128553]
- netlink: Introduce struct nft_data_linearize::sizes (Phil Sutter) [RHEL-128553]
- netlink: Introduce struct nft_data_linearize::byteorder (Phil Sutter) [RHEL-128553]
- expression: Set range expression 'len' field (Phil Sutter) [RHEL-128553]
- intervals: Convert byte order implicitly (Phil Sutter) [RHEL-128553]
- mergesort: Align concatenation sort order with Big Endian (Phil Sutter) [RHEL-128553]
- mergesort: Fix sorting of string values (Phil Sutter) [RHEL-128553]
- segtree: Fix range aggregation on Big Endian (Phil Sutter) [RHEL-128553]
Resolves: RHEL-128553
2026-02-24 16:17:31 +01:00

57 lines
1.7 KiB
Diff

From f675eaad15472cd84fae5f51a0ecac188e1b7e66 Mon Sep 17 00:00:00 2001
From: Phil Sutter <psutter@redhat.com>
Date: Tue, 24 Feb 2026 15:53:23 +0100
Subject: [PATCH] expression: Set range expression 'len' field
JIRA: https://issues.redhat.com/browse/RHEL-128553
Upstream Status: nftables commit b74a108432510b8cef62c4d0de1cef754ee70ab1
commit b74a108432510b8cef62c4d0de1cef754ee70ab1
Author: Phil Sutter <phil@nwl.cc>
Date: Thu Oct 16 18:57:20 2025 +0200
expression: Set range expression 'len' field
The length value is needed for netlink debug output of concatenated
ranges. Set it to one of the inner elements' lengths (which should be
identical).
Since the inner element length may not be set initially, set it in
eval phase again. This covers at least all cases in tests/py.
Without this, netlink_gen_concat_key() et al. would have to inspect
element types and extract lengths accordingly, this is much easier.
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
src/evaluate.c | 1 +
src/expression.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/evaluate.c b/src/evaluate.c
index 9125d5f..0831d2c 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -1337,6 +1337,7 @@ static int expr_evaluate_range(struct eval_ctx *ctx, struct expr **exprp)
datatype_set(range, left->dtype);
range->flags |= EXPR_F_CONSTANT;
+ range->len = left->len;
return 0;
}
diff --git a/src/expression.c b/src/expression.c
index 8cb6397..6e0941a 100644
--- a/src/expression.c
+++ b/src/expression.c
@@ -1013,6 +1013,7 @@ struct expr *range_expr_alloc(const struct location *loc,
BYTEORDER_INVALID, 0);
expr->left = left;
expr->right = right;
+ expr->len = left->len;
return expr;
}