From: Pablo Neira Ayuso Date: Thu, 21 Apr 2022 14:53:33 +0000 (+0200) Subject: nft-shared: update context register for bitwise expression X-Git-Tag: v1.8.8~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4c70c42fe8d937a2ca2709daa9efe96275d194da;p=thirdparty%2Fiptables.git nft-shared: update context register for bitwise expression Update the destination register, otherwise nft_parse_cmp() gives up on interpreting the cmp expression when bitwise sreg != dreg. Fixes: 2c4a34c30cb4 ("iptables-compat: fix address prefix") Signed-off-by: Pablo Neira Ayuso --- diff --git a/iptables/nft-shared.c b/iptables/nft-shared.c index c5721854..b3993211 100644 --- a/iptables/nft-shared.c +++ b/iptables/nft-shared.c @@ -460,6 +460,8 @@ static void nft_parse_bitwise(struct nft_xt_ctx *ctx, struct nftnl_expr *e) if (ctx->reg && reg != ctx->reg) return; + reg = nftnl_expr_get_u32(e, NFTNL_EXPR_BITWISE_DREG); + ctx->reg = reg; data = nftnl_expr_get(e, NFTNL_EXPR_BITWISE_XOR, &len); memcpy(ctx->bitwise.xor, data, len); data = nftnl_expr_get(e, NFTNL_EXPR_BITWISE_MASK, &len);