[PATCH v2] media: v4l2-core: Fix memory leak in v4l2_fwnode_parse_link

Biren Pandya posted 1 patch 1 month ago
drivers/media/v4l2-core/v4l2-fwnode.c | 1 +
1 file changed, 1 insertion(+)
[PATCH v2] media: v4l2-core: Fix memory leak in v4l2_fwnode_parse_link
Posted by Biren Pandya 1 month ago
In v4l2_fwnode_parse_link(), the remote endpoint fwnode reference is
acquired using fwnode_graph_get_remote_endpoint(). This reference is
properly released in the error paths, but it is leaked on the success
path.

Add the missing fwnode_handle_put() before returning 0 to prevent the
reference leak.

Signed-off-by: Biren Pandya <birenpandya@gmail.com>
---
Changes in v2:
- Resend because the v1 patch was lost in transit and did not appear on lore.kernel.org, causing CI to fail looking for the message ID. No code changes.

 drivers/media/v4l2-core/v4l2-fwnode.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
index 77f3298821b5..93ef83c591ef 100644
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
@@ -633,6 +633,7 @@ int v4l2_fwnode_parse_link(struct fwnode_handle *fwnode,
 	if (!link->remote_node)
 		goto err_put_remote_endpoint;
 
+	fwnode_handle_put(fwnode);
 	return 0;
 
 err_put_remote_endpoint:
-- 
2.50.1 (Apple Git-155)
Re: [PATCH v2] media: v4l2-core: Fix memory leak in v4l2_fwnode_parse_link
Posted by Sakari Ailus 2 weeks, 3 days ago
Hi Biren,

Thanks for the patch.

The subject prefix should be s/core/fwnode/; please see earlier patches for
hints in the future.

On Fri, Jun 19, 2026 at 01:41:30PM +0530, Biren Pandya wrote:
> In v4l2_fwnode_parse_link(), the remote endpoint fwnode reference is
> acquired using fwnode_graph_get_remote_endpoint(). This reference is
> properly released in the error paths, but it is leaked on the success
> path.
> 
> Add the missing fwnode_handle_put() before returning 0 to prevent the
> reference leak.
> 
> Signed-off-by: Biren Pandya <birenpandya@gmail.com>
> ---
> Changes in v2:
> - Resend because the v1 patch was lost in transit and did not appear on lore.kernel.org, causing CI to fail looking for the message ID. No code changes.
> 
>  drivers/media/v4l2-core/v4l2-fwnode.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
> index 77f3298821b5..93ef83c591ef 100644
> --- a/drivers/media/v4l2-core/v4l2-fwnode.c
> +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
> @@ -633,6 +633,7 @@ int v4l2_fwnode_parse_link(struct fwnode_handle *fwnode,
>  	if (!link->remote_node)
>  		goto err_put_remote_endpoint;
>  
> +	fwnode_handle_put(fwnode);

A newline here. I'll address these this time.

>  	return 0;
>  
>  err_put_remote_endpoint:

-- 
Kind regards,

Sakari Ailus