Re: [PATCH] media: em28xx: return error on media_device_register() failure

From: Christophe JAILLET
Date: Wed Jan 10 2024 - 14:16:06 EST


Le 10/01/2024 à 18:39, Nikita Zhandarovich a écrit :
In an unlikely case of failure in media_device_register(), release
resources and return the erroneous value. Otherwise, possible issues
with registering the device will continue to be ignored.

Found by Linux Verification Center (linuxtesting.org) with static
analysis tool SVACE.

Fixes: 37ecc7b1278f ("[media] em28xx: add media controller support")
Signed-off-by: Nikita Zhandarovich <n.zhandarovich@xxxxxxxxxx>
---
drivers/media/usb/em28xx/em28xx-cards.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index 4d037c92af7c..dae731dfc569 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -4095,6 +4095,8 @@ static int em28xx_usb_probe(struct usb_interface *intf,
*/
#ifdef CONFIG_MEDIA_CONTROLLER
retval = media_device_register(dev->media_dev);
+ if (retval)
+ goto err_free;
#endif
return 0;


Hi,

I think that some resources allocated in em28xx_init_dev() should also be freed if media_device_register() fails. (see the error handling path at the end of em28xx_init_dev())

Just my 2c.

CJ