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 |
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 --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;