[PATCH] drivers: bus: Fix resource leaks in for_each_available_child_of_node loop

Geert Uytterhoeven geert at linux-m68k.org
Thu Jul 6 00:43:02 PDT 2023


Hi Lu,

Thanks for your patch!

On Thu, Jul 6, 2023 at 9:13 AM Lu Hongfei <luhongfei at vivo.com> wrote:
> Ensure child node references are decremented properly in
> the error path.

Which error path?

>
> Signed-off-by: Lu Hongfei <luhongfei at vivo.com>
> ---
>  drivers/bus/imx-weim.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c
> index 52a5d0447390..d05472f7c20f 100644
> --- a/drivers/bus/imx-weim.c
> +++ b/drivers/bus/imx-weim.c
> @@ -251,6 +251,7 @@ static int weim_parse_dt(struct platform_device *pdev)
>                 else
>                         have_child = 1;
>         }
> +       of_node_put(child);

This is not an error path.

for_each_available_child_of_node() walks a list, getting a reference
to each child, and releasing the reference afterwards.

Have you tested this patch?
I expect the of_node_put() to trigger a refcount underflow error
message on the console.

>
>         if (have_child)
>                 ret = of_platform_default_populate(pdev->dev.of_node,

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



More information about the linux-arm-kernel mailing list