2022-05-16 22:48:17

by Miaoqian Lin

[permalink] [raw]
Subject: [PATCH] thermal: imx_sc_thermal: Fix refcount leak in imx_sc_thermal_probe

of_find_node_by_name() returns a node pointer with refcount
incremented, we should use of_node_put() on it when done.
Add missing of_node_put() to avoid refcount leak.

Fixes: e20db70dba1c ("thermal: imx_sc: add i.MX system controller thermal support")
Signed-off-by: Miaoqian Lin <[email protected]>
---
drivers/thermal/imx_sc_thermal.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/thermal/imx_sc_thermal.c b/drivers/thermal/imx_sc_thermal.c
index 8d76dbfde6a9..1ab854c228e5 100644
--- a/drivers/thermal/imx_sc_thermal.c
+++ b/drivers/thermal/imx_sc_thermal.c
@@ -95,6 +95,7 @@ static int imx_sc_thermal_probe(struct platform_device *pdev)
if (!sensor) {
of_node_put(child);
of_node_put(sensor_np);
+ of_node_put(np);
return -ENOMEM;
}

@@ -125,6 +126,7 @@ static int imx_sc_thermal_probe(struct platform_device *pdev)
}

of_node_put(sensor_np);
+ of_node_put(np);

return ret;
}
--
2.25.1



2022-05-16 23:32:49

by Daniel Lezcano

[permalink] [raw]
Subject: Re: [PATCH] thermal: imx_sc_thermal: Fix refcount leak in imx_sc_thermal_probe

On 16/05/2022 09:31, Miaoqian Lin wrote:
> of_find_node_by_name() returns a node pointer with refcount
> incremented, we should use of_node_put() on it when done.
> Add missing of_node_put() to avoid refcount leak.
>
> Fixes: e20db70dba1c ("thermal: imx_sc: add i.MX system controller thermal support")
> Signed-off-by: Miaoqian Lin <[email protected]>
> ---
> drivers/thermal/imx_sc_thermal.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/thermal/imx_sc_thermal.c b/drivers/thermal/imx_sc_thermal.c
> index 8d76dbfde6a9..1ab854c228e5 100644
> --- a/drivers/thermal/imx_sc_thermal.c
> +++ b/drivers/thermal/imx_sc_thermal.c
> @@ -95,6 +95,7 @@ static int imx_sc_thermal_probe(struct platform_device *pdev)
> if (!sensor) {
> of_node_put(child);
> of_node_put(sensor_np);
> + of_node_put(np);
> return -ENOMEM;
> }


Please use goto statement

> @@ -125,6 +126,7 @@ static int imx_sc_thermal_probe(struct platform_device *pdev)
> }
>
> of_node_put(sensor_np);
> + of_node_put(np);
>
> return ret;
> }


--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog