mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
netfilter: nft_nat: fully initialise new_addr in netmap setup
nft_nat_setup_netmap() builds the mapped address in an on-stack
union nf_inet_addr. For an IPv4 mapping it writes only the 4-byte .ip
member and the loop runs a single 32-bit iteration, but it then copies
the whole 16-byte union into range->min_addr and range->max_addr, so the
upper 12 bytes reach nf_nat_setup_info() uninitialised.
KMSAN reports an uninit-value in nf_nat_setup_info() reached from
nft_nat_eval(). The IPv6 path fills all 16 bytes and is not affected.
Zero-initialise new_addr.
Fixes: 3ff7ddb135 ("netfilter: nft_nat: add netmap support")
Signed-off-by: Theodor Arsenij Larionov Trichkine <theodorlarionov@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
7844502343
commit
d313499df6
|
|
@ -64,8 +64,8 @@ static void nft_nat_setup_netmap(struct nf_nat_range2 *range,
|
|||
const struct nft_pktinfo *pkt,
|
||||
const struct nft_nat *priv)
|
||||
{
|
||||
union nf_inet_addr new_addr = {};
|
||||
struct sk_buff *skb = pkt->skb;
|
||||
union nf_inet_addr new_addr;
|
||||
__be32 netmask;
|
||||
int i, len = 0;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user