Skip to content

Commit 4910da6

Browse files
Pei Xiaogroeck
authored andcommitted
hwmon: (emc2305) fix device node refcount leak in error path
The for_each_child_of_node() macro automatically manages device node reference counts during normal iteration. However, when breaking out of the loop early with return, the current iteration's node is not automatically released, leading to a reference count leak. Fix this by adding of_node_put(child) before returning from the loop when emc2305_set_single_tz() fails. This issue could lead to memory leaks over multiple probe cycles. Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn> Link: https://lore.kernel.org/r/tencent_5CDC08544C901D5ECA270573D5AEE3117108@qq.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
1 parent 541dfb4 commit 4910da6

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

drivers/hwmon/emc2305.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -683,8 +683,10 @@ static int emc2305_probe(struct i2c_client *client)
683683
i = 0;
684684
for_each_child_of_node(dev->of_node, child) {
685685
ret = emc2305_set_single_tz(dev, child, i);
686-
if (ret != 0)
686+
if (ret != 0) {
687+
of_node_put(child);
687688
return ret;
689+
}
688690
i++;
689691
}
690692
} else {

0 commit comments

Comments
 (0)