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

From: Markus Elfring
Date: Fri Mar 01 2024 - 09:08:17 EST


From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
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@xxxxxxxxxxxxxxxxxxxxx>
---
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