diff mbox series

[v1,1/1] gpio: mockup: Fix potential resource leakage when register a chip

Message ID 20220920133031.30031-1-andriy.shevchenko@linux.intel.com
State New
Headers show
Series [v1,1/1] gpio: mockup: Fix potential resource leakage when register a chip | expand

Commit Message

Andy Shevchenko Sept. 20, 2022, 1:30 p.m. UTC
If creation of software node fails, the locally allocated string
array is left unfreed. Free it on error path.

Fixes: 6fda593f3082 ("gpio: mockup: Convert to use software nodes")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/gpio/gpio-mockup.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Bartosz Golaszewski Sept. 20, 2022, 2:08 p.m. UTC | #1
On Tue, Sep 20, 2022 at 3:30 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> If creation of software node fails, the locally allocated string
> array is left unfreed. Free it on error path.
>
> Fixes: 6fda593f3082 ("gpio: mockup: Convert to use software nodes")
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/gpio/gpio-mockup.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
> index a2e505a7545c..d6e42159fe44 100644
> --- a/drivers/gpio/gpio-mockup.c
> +++ b/drivers/gpio/gpio-mockup.c
> @@ -533,8 +533,10 @@ static int __init gpio_mockup_register_chip(int idx)
>         }
>
>         fwnode = fwnode_create_software_node(properties, NULL);
> -       if (IS_ERR(fwnode))
> +       if (IS_ERR(fwnode)) {
> +               kfree_strarray(line_names, ngpio);
>                 return PTR_ERR(fwnode);
> +       }
>
>         pdevinfo.name = "gpio-mockup";
>         pdevinfo.id = idx;
> --
> 2.35.1
>

Queued for fixes.

Bart
diff mbox series

Patch

diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
index a2e505a7545c..d6e42159fe44 100644
--- a/drivers/gpio/gpio-mockup.c
+++ b/drivers/gpio/gpio-mockup.c
@@ -533,8 +533,10 @@  static int __init gpio_mockup_register_chip(int idx)
 	}
 
 	fwnode = fwnode_create_software_node(properties, NULL);
-	if (IS_ERR(fwnode))
+	if (IS_ERR(fwnode)) {
+		kfree_strarray(line_names, ngpio);
 		return PTR_ERR(fwnode);
+	}
 
 	pdevinfo.name = "gpio-mockup";
 	pdevinfo.id = idx;