netfilter: nft_tproxy: Fix port selector on Big Endian
[ Upstream commit 8cb4ec44de42b99b92399b4d1daf3dc430ed0186 ] On Big Endian architectures, u16 port value was extracted from the wrong parts of u32 sreg_port, just like commit10596608c4
("netfilter: nf_tables: fix mismatch in big-endian system") describes. Fixes:4ed8eb6570
("netfilter: nf_tables: Add native tproxy support") Signed-off-by: Phil Sutter <phil@nwl.cc> Acked-by: Florian Westphal <fw@strlen.de> Acked-by: Máté Eckl <ecklm94@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
85b1e127aa
commit
da7504b07c
1 changed files with 2 additions and 2 deletions
|
@ -50,7 +50,7 @@ static void nft_tproxy_eval_v4(const struct nft_expr *expr,
|
|||
taddr = nf_tproxy_laddr4(skb, taddr, iph->daddr);
|
||||
|
||||
if (priv->sreg_port)
|
||||
tport = regs->data[priv->sreg_port];
|
||||
tport = nft_reg_load16(®s->data[priv->sreg_port]);
|
||||
if (!tport)
|
||||
tport = hp->dest;
|
||||
|
||||
|
@ -117,7 +117,7 @@ static void nft_tproxy_eval_v6(const struct nft_expr *expr,
|
|||
taddr = *nf_tproxy_laddr6(skb, &taddr, &iph->daddr);
|
||||
|
||||
if (priv->sreg_port)
|
||||
tport = regs->data[priv->sreg_port];
|
||||
tport = nft_reg_load16(®s->data[priv->sreg_port]);
|
||||
if (!tport)
|
||||
tport = hp->dest;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue