net: hisilicon: Fix potential use-after-free in hisi_femac_rx()
authorLiu Jian <liujian56@huawei.com>
Sat, 3 Dec 2022 09:42:39 +0000 (17:42 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 6 Dec 2022 11:45:11 +0000 (12:45 +0100)
The skb is delivered to napi_gro_receive() which may free it, after
calling this, dereferencing skb may trigger use-after-free.

Fixes: 542ae60af24f ("net: hisilicon: Add Fast Ethernet MAC driver")
Signed-off-by: Liu Jian <liujian56@huawei.com>
Link: https://lore.kernel.org/r/20221203094240.1240211-1-liujian56@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/hisilicon/hisi_femac.c

index 93846ba..ce2571c 100644 (file)
@@ -283,7 +283,7 @@ static int hisi_femac_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 = (pos + 1) % rxq->num;
                if (rx_pkts_num >= limit)