]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
thermal: of: fix OF node leak in of_thermal_zone_find()
authorJoe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Tue, 24 Dec 2024 03:18:09 +0000 (12:18 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Jan 2025 12:40:48 +0000 (13:40 +0100)
[ Upstream commit 9164e0912af206a72ddac4915f7784e470a04ace ]

of_thermal_zone_find() calls of_parse_phandle_with_args(), but does not
release the OF node reference obtained by it.

Add a of_node_put() call when the call is successful.

Fixes: 3fd6d6e2b4e8 ("thermal/of: Rework the thermal device tree initialization")
Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
Link: https://patch.msgid.link/20241224031809.950461-1-joe@pf.is.s.u-tokyo.ac.jp
[ rjw: Changelog edit ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/thermal/thermal_of.c

index 07e09897165f3497c9609a36f90194149f43d20c..5d3d8ce672cd510771af66050ac4acc406c1edd3 100644 (file)
@@ -176,6 +176,7 @@ static struct device_node *of_thermal_zone_find(struct device_node *sensor, int
                                goto out;
                        }
 
+                       of_node_put(sensor_specs.np);
                        if ((sensor == sensor_specs.np) && id == (sensor_specs.args_count ?
                                                                  sensor_specs.args[0] : 0)) {
                                pr_debug("sensor %pOFn id=%d belongs to %pOFn\n", sensor, id, child);