diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-03-23 12:36:08 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-03-28 10:26:34 +0200 |
commit | 1cdd8249f1c9c462b40ccde8d56191ea481ce610 (patch) | |
tree | 313c096b3faf20089d1165a201b120c8549bd4aa /src | |
parent | 5d8e33ddb1125ccdc258c01d2d869be6eb9ed3a9 (diff) |
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 <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/evaluate.c | 1 |
1 files changed, 1 insertions, 0 deletions
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; |