Re: [PATCH] net: dsa: Add of_node_put() before break statement
From: Andrew Lunn <andrew@lunn.ch>
Date: 2020-08-23 14:28:56
Also in:
linux-mediatek, lkml, netdev
On Sun, Aug 23, 2020 at 07:31:16PM +0530, Sumera Priyadarsini wrote:
quoted hunk ↗ jump to hunk
Every iteration of for_each_child_of_node() decrements the reference count of the previous node, however when control is transferred from the middle of the loop, as in the case of a return or break or goto, there is no decrement thus ultimately resulting in a memory leak. Fix a potential memory leak in mt7530.c by inserting of_node_put() before the break statement. Issue found with Coccinelle. Signed-off-by: Sumera Priyadarsini <redacted> --- drivers/net/dsa/mt7530.c | 1 + 1 file changed, 1 insertion(+)diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 8dcb8a49ab67..af83e5034842 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c@@ -1334,6 +1334,7 @@ mt7530_setup(struct dsa_switch *ds) if (id == 4) priv->p5_intf_sel = P5_INTF_SEL_PHY_P4; } + of_node_put(mac_np); of_node_put(phy_node); break; }
Within the same loop is:
if (phy_node->parent == priv->dev->of_node->parent) {
ret = of_get_phy_mode(mac_np, &interface);
if (ret && ret != -ENODEV)
return ret;
shouldn't this also have a put?
Andrew
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel