lkml.org 
[lkml]   [2020]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 458/671] net: pasemi: fix an use-after-free in pasemi_mac_phy_init()
    Date
    From: Wen Yang <wen.yang99@zte.com.cn>

    [ Upstream commit faf5577f2498cea23011b5c785ef853ded22700b ]

    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 <wen.yang99@zte.com.cn>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: netdev@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@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 8a31a02c9f47..65f69e562618 100644
    --- a/drivers/net/ethernet/pasemi/pasemi_mac.c
    +++ b/drivers/net/ethernet/pasemi/pasemi_mac.c
    @@ -1053,7 +1053,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;
    @@ -1062,6 +1061,7 @@ static int pasemi_mac_phy_init(struct net_device *dev)
    phydev = of_phy_connect(dev, phy_dn, &pasemi_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.20.1
    \
     
     \ /
      Last update: 2020-01-16 18:10    [W:4.128 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site