2022-05-06 13:26:25

by Puyou Lu

[permalink] [raw]
Subject: [PATCH v2] lib/string_helpers: fix not adding strarray to device's resource list.

Add allocated strarray to device's resource list. This is a must to
automatically release strarray when the device disappears.

Fixes: acdb89b6c87a ("lib/string_helpers: Introduce managed variant of kasprintf_strarray()")
Signed-off-by: Puyou Lu <[email protected]>

---

Change since v1:
also set 'n' of strarray https://lore.kernel.org/lkml/[email protected]/

---
lib/string_helpers.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/lib/string_helpers.c b/lib/string_helpers.c
index 4f877e9551d5..5ed3beb066e6 100644
--- a/lib/string_helpers.c
+++ b/lib/string_helpers.c
@@ -757,6 +757,9 @@ char **devm_kasprintf_strarray(struct device *dev, const char *prefix, size_t n)
return ERR_PTR(-ENOMEM);
}

+ ptr->n = n;
+ devres_add(dev, ptr);
+
return ptr->array;
}
EXPORT_SYMBOL_GPL(devm_kasprintf_strarray);
--
2.17.1



2022-05-09 03:49:35

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v2] lib/string_helpers: fix not adding strarray to device's resource list.

On Sat, May 07, 2022 at 11:45:16AM -0700, Andrew Morton wrote:
> On Fri, 6 May 2022 15:36:22 +0800 Puyou Lu <[email protected]> wrote:
>
> > Add allocated strarray to device's resource list. This is a must to
> > automatically release strarray when the device disappears.
>
> So at present we have a memory leak?

Yes.

> Is this likely to be serious enough to justify backporting the fix into
> -stable kernels?

I think so, however there are only few drivers are using it, hence it's
serious, but rare.

--
With Best Regards,
Andy Shevchenko



2022-05-09 06:41:28

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v2] lib/string_helpers: fix not adding strarray to device's resource list.

On Fri, May 6, 2022 at 9:36 AM Puyou Lu <[email protected]> wrote:
>
> Add allocated strarray to device's resource list. This is a must to
> automatically release strarray when the device disappears.

LGTM,
Reviewed-by: Andy Shevchenko <[email protected]>
Thanks!

> Fixes: acdb89b6c87a ("lib/string_helpers: Introduce managed variant of kasprintf_strarray()")
> Signed-off-by: Puyou Lu <[email protected]>
>
> ---
>
> Change since v1:
> also set 'n' of strarray https://lore.kernel.org/lkml/[email protected]/
>
> ---
> lib/string_helpers.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/lib/string_helpers.c b/lib/string_helpers.c
> index 4f877e9551d5..5ed3beb066e6 100644
> --- a/lib/string_helpers.c
> +++ b/lib/string_helpers.c
> @@ -757,6 +757,9 @@ char **devm_kasprintf_strarray(struct device *dev, const char *prefix, size_t n)
> return ERR_PTR(-ENOMEM);
> }
>
> + ptr->n = n;
> + devres_add(dev, ptr);
> +
> return ptr->array;
> }
> EXPORT_SYMBOL_GPL(devm_kasprintf_strarray);
> --
> 2.17.1
>


--
With Best Regards,
Andy Shevchenko

2022-05-09 06:47:10

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH v2] lib/string_helpers: fix not adding strarray to device's resource list.

On Fri, 6 May 2022 15:36:22 +0800 Puyou Lu <[email protected]> wrote:

> Add allocated strarray to device's resource list. This is a must to
> automatically release strarray when the device disappears.

So at present we have a memory leak?

Is this likely to be serious enough to justify backporting the fix into
-stable kernels?

> --- a/lib/string_helpers.c
> +++ b/lib/string_helpers.c
> @@ -757,6 +757,9 @@ char **devm_kasprintf_strarray(struct device *dev, const char *prefix, size_t n)
> return ERR_PTR(-ENOMEM);
> }
>
> + ptr->n = n;
> + devres_add(dev, ptr);
> +
> return ptr->array;
> }
> EXPORT_SYMBOL_GPL(devm_kasprintf_strarray);