[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aKLrDGXJ/pXS/wRk@lpieralisi>
Date: Mon, 18 Aug 2025 10:57:48 +0200
From: Lorenzo Pieralisi <lpieralisi@...nel.org>
To: Lizhi Hou <lizhi.hou@....com>
Cc: robh@...nel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH V1] of: dynamic: Fix memleak when of_pci_add_properties
failed
On Wed, Aug 13, 2025 at 11:28:49AM -0700, Lizhi Hou wrote:
> When of_pci_add_properties failed, of_changeset_destroy is called to free
> the changeset. And of_changeset_destroy puts device tree node in each entry
> but does not free property in the entry. This leads to memory leak in the
> failure case.
>
> In of_changeset_add_prop_helper, add the property to the device tree node
> deadprops list. Thus, the property will also be freed along with device
> tree node.
Add brackets to denote functions:
of_changeset_add_prop_helper()
> Fixes: b544fc2b8606 ("of: dynamic: Add interfaces for creating device node dynamically")
> Reported-by: Lorenzo Pieralisi <lpieralisi@...nel.org>
> Closes: https://lore.kernel.org/all/aJms+YT8TnpzpCY8@lpieralisi/
> Signed-off-by: Lizhi Hou <lizhi.hou@....com>
> ---
> drivers/of/dynamic.c | 3 +++
> 1 file changed, 3 insertions(+)
Tested-by: Lorenzo Pieralisi <lpieralisi@...nel.org>
> diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c
> index 0aba760f7577..dd30b7d8b5e4 100644
> --- a/drivers/of/dynamic.c
> +++ b/drivers/of/dynamic.c
> @@ -938,6 +938,9 @@ static int of_changeset_add_prop_helper(struct of_changeset *ocs,
> if (ret)
> __of_prop_free(new_pp);
>
> + new_pp->next = np->deadprops;
> + np->deadprops = new_pp;
> +
> return ret;
> }
>
> --
> 2.34.1
>
Powered by blists - more mailing lists