]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
evaluate: pick data element byte order, not dtype one
authorFlorian Westphal <fw@strlen.de>
Wed, 3 Feb 2021 16:57:06 +0000 (17:57 +0100)
committerFlorian Westphal <fw@strlen.de>
Tue, 16 Feb 2021 14:11:21 +0000 (15:11 +0100)
Some expressions have integer base type, not a specific one, e.g. 'ct zone'.
In that case nft used the wrong byte order.

Without this, nft adds
elements = { "eth0" : 256, "eth1" : 512, "veth4" : 256 }
instead of 1, 2, 3.

This is not a 'display bug', the added elements have wrong byte order.

Signed-off-by: Florian Westphal <fw@strlen.de>
src/evaluate.c

index 782a5bca98bb77f43ac284678deddfe5b167c639..0ab94ab88e68eeee6b2348090835e8e4378b49a4 100644 (file)
@@ -1598,7 +1598,7 @@ static int expr_evaluate_mapping(struct eval_ctx *ctx, struct expr **expr)
                else
                        datalen = set->data->len;
 
-               expr_set_context(&ctx->ectx, set->data->dtype, datalen);
+               __expr_set_context(&ctx->ectx, set->data->dtype, set->data->byteorder, datalen, 0);
        } else {
                assert((set->flags & NFT_SET_MAP) == 0);
        }