]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: hisilicon: Fix potential use-after-free in hix5hd2_rx()
authorLiu Jian <liujian56@huawei.com>
Sat, 3 Dec 2022 09:42:40 +0000 (17:42 +0800)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Dec 2022 13:02:56 +0000 (14:02 +0100)
[ Upstream commit 433c07a13f59856e4585e89e86b7d4cc59348fab ]

The skb is delivered to napi_gro_receive() which may free it, after
calling this, dereferencing skb may trigger use-after-free.

Fixes: 57c5bc9ad7d7 ("net: hisilicon: add hix5hd2 mac driver")
Signed-off-by: Liu Jian <liujian56@huawei.com>
Link: https://lore.kernel.org/r/20221203094240.1240211-2-liujian56@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit b8ce0e6f9f88a6bb49d291498377e61ea27a5387)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c

index c1aae0fca5e988d7888192d54729c5bbb889cedb..0a70fb979f0c3ca865996dd08cca630ce1a5a162 100644 (file)
@@ -550,7 +550,7 @@ static int hix5hd2_rx(struct net_device *dev, int limit)
                skb->protocol = eth_type_trans(skb, dev);
                napi_gro_receive(&priv->napi, skb);
                dev->stats.rx_packets++;
-               dev->stats.rx_bytes += skb->len;
+               dev->stats.rx_bytes += len;
 next:
                pos = dma_ring_incr(pos, RX_DESC_NUM);
        }