From: Pablo Neira Ayuso Date: Thu, 23 Mar 2023 11:36:08 +0000 (+0100) Subject: evaluate: set up integer type to shift expression X-Git-Tag: v1.0.8~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1cdd8249f1c9c462b40ccde8d56191ea481ce610;p=thirdparty%2Fnftables.git evaluate: set up integer type to shift expression Otherwise expr_evaluate_value() fails with invalid datatype: # nft --debug=netlink add rule ip x y 'ct mark set ip dscp & 0x0f << 1' BUG: invalid basetype invalid nft: evaluate.c:440: expr_evaluate_value: Assertion `0' failed. Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/evaluate.c b/src/evaluate.c index 33b1aad7..97752c0f 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -1308,6 +1308,7 @@ static int expr_evaluate_shift(struct eval_ctx *ctx, struct expr **expr) if (byteorder_conversion(ctx, &op->right, BYTEORDER_HOST_ENDIAN) < 0) return -1; + datatype_set(op, &integer_type); op->byteorder = BYTEORDER_HOST_ENDIAN; op->len = max_shift_len;