* 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
57 lines
1.7 KiB
Diff
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;
|
|
}
|
|
|