diff mbox series

media: v4l2-fwnode: Improve exception handling in v4l2_fwnode_connector_add_link()

Message ID 9d0511cd-1fb2-4612-9b21-196a43ad0397@web.de (mailing list archive)
State New, archived
Headers show
Series media: v4l2-fwnode: Improve exception handling in v4l2_fwnode_connector_add_link() | expand

Commit Message

Markus Elfring March 1, 2024, 2:07 p.m. UTC
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Fri, 1 Mar 2024 15:02:09 +0100

The kfree() function was called in one case by
the v4l2_fwnode_connector_add_link() function during error handling
even if the passed variable contained a null pointer.
Thus use another label.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/media/v4l2-core/v4l2-fwnode.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--
2.44.0

Comments

Sakari Ailus March 4, 2024, 7:23 a.m. UTC | #1
Hi Markus,

On Fri, Mar 01, 2024 at 03:07:50PM +0100, Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Fri, 1 Mar 2024 15:02:09 +0100
> 
> The kfree() function was called in one case by
> the v4l2_fwnode_connector_add_link() function during error handling
> even if the passed variable contained a null pointer.
> Thus use another label.

This isn't a problem, the code is fine as-is.

> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  drivers/media/v4l2-core/v4l2-fwnode.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> index 89c7192148df..dc6daf3a9a51 100644
> --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> @@ -744,7 +744,7 @@ int v4l2_fwnode_connector_add_link(struct fwnode_handle *fwnode,
>  	link = kzalloc(sizeof(*link), GFP_KERNEL);
>  	if (!link) {
>  		err = -ENOMEM;
> -		goto err;
> +		goto put_fwnode_ep;
>  	}
> 
>  	err = v4l2_fwnode_parse_link(connector_ep, &link->fwnode_link);
> @@ -760,6 +760,7 @@ int v4l2_fwnode_connector_add_link(struct fwnode_handle *fwnode,
> 
>  err:
>  	kfree(link);
> +put_fwnode_ep:
>  	fwnode_handle_put(connector_ep);
> 
>  	return err;
> --
> 2.44.0
>
diff mbox series

Patch

diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
index 89c7192148df..dc6daf3a9a51 100644
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
@@ -744,7 +744,7 @@  int v4l2_fwnode_connector_add_link(struct fwnode_handle *fwnode,
 	link = kzalloc(sizeof(*link), GFP_KERNEL);
 	if (!link) {
 		err = -ENOMEM;
-		goto err;
+		goto put_fwnode_ep;
 	}

 	err = v4l2_fwnode_parse_link(connector_ep, &link->fwnode_link);
@@ -760,6 +760,7 @@  int v4l2_fwnode_connector_add_link(struct fwnode_handle *fwnode,

 err:
 	kfree(link);
+put_fwnode_ep:
 	fwnode_handle_put(connector_ep);

 	return err;