From: Phil Sutter Date: Thu, 16 Oct 2025 16:57:20 +0000 (+0200) Subject: expression: Set range expression 'len' field X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b74a108432510b8cef62c4d0de1cef754ee70ab1;p=thirdparty%2Fnftables.git 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 --- diff --git a/src/evaluate.c b/src/evaluate.c index b42b5a6f..7e6ef3c7 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -1347,6 +1347,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 4d68967f..e036c4bb 100644 --- a/src/expression.c +++ b/src/expression.c @@ -1018,6 +1018,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; }