Commit 4d7c9d6a authored by Liu Jian's avatar Liu Jian Committed by sanglipeng
Browse files

net: hisilicon: Fix potential use-after-free in hisi_femac_rx()

stable inclusion
from stable-v5.10.159
commit 296a50aa8b2982117520713edc1375777a9f8506
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7NTXH

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=296a50aa8b2982117520713edc1375777a9f8506



--------------------------------

[ Upstream commit 46401770 ]

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

Fixes: 542ae60a ("net: hisilicon: Add Fast Ethernet MAC driver")
Signed-off-by: default avatarLiu Jian <liujian56@huawei.com>
Link: https://lore.kernel.org/r/20221203094240.1240211-1-liujian56@huawei.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarsanglipeng <sanglipeng1@jd.com>
parent ac403e1d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)