net: don't memcpy to NULL
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Wed, 7 Dec 2022 10:53:29 +0000 (11:53 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 22 Dec 2022 20:39:13 +0000 (15:39 -0500)
In ndisc_receive() 7 bytes are copied from a buffer of size 6 to NULL.

net_nd_packet_mac is a pointer. If it is NULL, we should set it to the
address of the buffer with the MAC address.

Addresses-Coverity-ID: 430974 ("Out-of-bounds access")
Fixes: c6610e1d90ea ("net: ipv6: Add Neighbor Discovery Protocol (NDP)")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
net/ndisc.c

index 3c0eeea..367dae7 100644 (file)
@@ -265,7 +265,7 @@ int ndisc_receive(struct ethernet_hdr *et, struct ip6_hdr *ip6, int len)
 
                        /* save address for later use */
                        if (!net_nd_packet_mac)
-                               memcpy(net_nd_packet_mac, neigh_eth_addr, 7);
+                               net_nd_packet_mac = neigh_eth_addr;
 
                        /* modify header, and transmit it */
                        memcpy(((struct ethernet_hdr *)net_nd_tx_packet)->et_dest,