On Tue, Jun 17, 2025 at 09:02:52AM +0800, Jijie Shao wrote:
From: Jian Shen <shenjian15@xxxxxxxxxx>I am sceptical about the merit of setting local variables to NULL like this.
There are several pointers are freed but not set to NULL,
and their lifetime is not end immediately. To avoid misusing
there wild pointers, set them to NULL.
Signed-off-by: Jian Shen <shenjian15@xxxxxxxxxx>
Signed-off-by: Jijie Shao <shaojijie@xxxxxxxxxx>
---
drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c | 1 +
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 4 ++++
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 4 ++++
3 files changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
index 6a244ba5e051..0d6db46db5ed 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c
@@ -276,6 +276,7 @@ static int hns3_lp_run_test(struct net_device *ndev, enum hnae3_loop mode)
good_cnt++;
} else {
kfree_skb(skb);
+ skb = NULL;
In general defensive coding is not the preferred approach in the Kernel.
And in this case, won't this result in a NULL dereference when
skb_get(skb) is called if the loop this code resides in iterates again?
netdev_err(ndev, "hns3_lb_run_test xmit failed: %d\n",...
tx_ret);
}