public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] of: overlay: fix memory leak in add_changeset_node()
@ 2022-11-18 10:53 Zeng Heng
  2022-11-21  2:00 ` Frank Rowand
  2022-12-01 22:54 ` [PATCH] " Frank Rowand
  0 siblings, 2 replies; 10+ messages in thread
From: Zeng Heng @ 2022-11-18 10:53 UTC (permalink / raw)
  To: frowand.list, pantelis.antoniou, grant.likely, robh+dt
  Cc: liwei391, devicetree, linux-kernel

In of_changeset_action(), we have called of_node_get() to increase
refcount of a node.

Therefore, when tchild (duplicated by __of_node_dup()) is done,
of_node_put() needs to call and release the device_node.

Otherwise, there are some memory leak reported about the node:

unreferenced object 0xffff88810cd1e800 (size 256):
  backtrace:
    kmalloc_trace
    __of_node_dup
    add_changeset_node (inlined)
    build_changeset_next_level

unreferenced object 0xffff888113721240 (size 16):
  backtrace:
    __kmalloc_node_track_caller
    kstrdup
    __of_node_dup
    add_changeset_node (inlined)
    build_changeset_next_level

unreferenced object 0xffff88810a38d400 (size 128):
  backtrace:
    kmalloc_trace
    __of_prop_dup
    add_changeset_property
    build_changeset_next_level

Fixes: 7518b5890d8a ("of/overlay: Introduce DT overlay support")
Signed-off-by: Zeng Heng <zengheng4@huawei.com>
---
 drivers/of/overlay.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index bd8ff4df723d..a5189a0ec0a3 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -436,8 +436,10 @@ static int add_changeset_node(struct overlay_changeset *ovcs,
 		of_node_set_flag(tchild, OF_OVERLAY);
 
 		ret = of_changeset_attach_node(&ovcs->cset, tchild);
-		if (ret)
+		if (ret) {
+			of_node_put(tchild);
 			return ret;
+		}
 
 		target_child.np = tchild;
 		target_child.in_livetree = false;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-12-01 22:54 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-18 10:53 [PATCH] of: overlay: fix memory leak in add_changeset_node() Zeng Heng
2022-11-21  2:00 ` Frank Rowand
2022-11-21  3:37   ` Zeng Heng
2022-11-21  3:53     ` [PATCH v2] " Zeng Heng
2022-11-21  6:07       ` Zeng Heng
2022-11-23  0:29       ` Frank Rowand
2022-11-23  1:16         ` Frank Rowand
2022-11-23  1:52           ` Zeng Heng
2022-11-23  1:41         ` Zeng Heng
2022-12-01 22:54 ` [PATCH] " Frank Rowand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox