Denis Kirjanov 13c92f
From 873725cfa035a170cbdf7ecc80f6ec72850950a1 Mon Sep 17 00:00:00 2001
Denis Kirjanov 13c92f
From: Pavel Skripkin <paskripkin@gmail.com>
Denis Kirjanov 13c92f
Date: Fri, 18 Jun 2021 19:14:31 +0300
Denis Kirjanov 13c92f
Subject: [PATCH 19/19] net: ethernet: ezchip: fix UAF in nps_enet_remove
Denis Kirjanov 13c92f
Git-commit: e4b8700e07a86e8eab6916aa5c5ba99042c34089
Denis Kirjanov 13c92f
Patch-mainline: v5.14-rc1
Denis Kirjanov 13c92f
References: git-fixes
Denis Kirjanov 13c92f
Denis Kirjanov 13c92f
priv is netdev private data, but it is used
Denis Kirjanov 13c92f
after free_netdev(). It can cause use-after-free when accessing priv
Denis Kirjanov 13c92f
pointer. So, fix it by moving free_netdev() after netif_napi_del()
Denis Kirjanov 13c92f
call.
Denis Kirjanov 13c92f
Denis Kirjanov 13c92f
Fixes: 0dd077093636 ("NET: Add ezchip ethernet driver")
Denis Kirjanov 13c92f
Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
Denis Kirjanov 13c92f
Signed-off-by: David S. Miller <davem@davemloft.net>
Denis Kirjanov 13c92f
Signed-off-by: Denis Kirjanov <denis.kirjanov@suse.com>
Denis Kirjanov 13c92f
---
Denis Kirjanov 13c92f
 drivers/net/ethernet/ezchip/nps_enet.c | 2 +-
Denis Kirjanov 13c92f
 1 file changed, 1 insertion(+), 1 deletion(-)
Denis Kirjanov 13c92f
Denis Kirjanov 13c92f
diff --git a/drivers/net/ethernet/ezchip/nps_enet.c b/drivers/net/ethernet/ezchip/nps_enet.c
Denis Kirjanov 13c92f
index 659f1ad37e96..fbadf08b7c5d 100644
Denis Kirjanov 13c92f
--- a/drivers/net/ethernet/ezchip/nps_enet.c
Denis Kirjanov 13c92f
+++ b/drivers/net/ethernet/ezchip/nps_enet.c
Denis Kirjanov 13c92f
@@ -658,8 +658,8 @@ static s32 nps_enet_remove(struct platform_device *pdev)
Denis Kirjanov 13c92f
 	struct nps_enet_priv *priv = netdev_priv(ndev);
Denis Kirjanov 13c92f
 
Denis Kirjanov 13c92f
 	unregister_netdev(ndev);
Denis Kirjanov 13c92f
-	free_netdev(ndev);
Denis Kirjanov 13c92f
 	netif_napi_del(&priv->napi);
Denis Kirjanov 13c92f
+	free_netdev(ndev);
Denis Kirjanov 13c92f
 
Denis Kirjanov 13c92f
 	return 0;
Denis Kirjanov 13c92f
 }
Denis Kirjanov 13c92f
-- 
Denis Kirjanov 13c92f
2.16.4
Denis Kirjanov 13c92f