Re: [PATCH] net: pasemi: fix an use-after-free in pasemi_mac_phy_init()

2019-07-08 Thread David Miller
From: Wen Yang 
Date: Sat, 6 Jul 2019 12:23:41 +0800

> The phy_dn variable is still being used in of_phy_connect() after the
> of_node_put() call, which may result in use-after-free.
> 
> Fixes: 1dd2d06c0459 ("net: Rework pasemi_mac driver to use of_mdio 
> infrastructure")
> Signed-off-by: Wen Yang 

Applied.


[PATCH] net: pasemi: fix an use-after-free in pasemi_mac_phy_init()

2019-07-05 Thread Wen Yang
The phy_dn variable is still being used in of_phy_connect() after the
of_node_put() call, which may result in use-after-free.

Fixes: 1dd2d06c0459 ("net: Rework pasemi_mac driver to use of_mdio 
infrastructure")
Signed-off-by: Wen Yang 
Cc: "David S. Miller" 
Cc: Thomas Gleixner 
Cc: Luis Chamberlain 
Cc: Michael Ellerman 
Cc: net...@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/net/ethernet/pasemi/pasemi_mac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.c 
b/drivers/net/ethernet/pasemi/pasemi_mac.c
index bf5a7bc..be66601 100644
--- a/drivers/net/ethernet/pasemi/pasemi_mac.c
+++ b/drivers/net/ethernet/pasemi/pasemi_mac.c
@@ -1042,7 +1042,6 @@ static int pasemi_mac_phy_init(struct net_device *dev)
 
dn = pci_device_to_OF_node(mac->pdev);
phy_dn = of_parse_phandle(dn, "phy-handle", 0);
-   of_node_put(phy_dn);
 
mac->link = 0;
mac->speed = 0;
@@ -1051,6 +1050,7 @@ static int pasemi_mac_phy_init(struct net_device *dev)
phydev = of_phy_connect(dev, phy_dn, _adjust_link, 0,
PHY_INTERFACE_MODE_SGMII);
 
+   of_node_put(phy_dn);
if (!phydev) {
printk(KERN_ERR "%s: Could not attach to phy\n", dev->name);
return -ENODEV;
-- 
2.9.5