Fix to avoid possible memory leak and exit file handle
in error paths.

Signed-off-by: Santosh Kumar Singh <[email protected]>
---
 drivers/media/usb/tm6000/tm6000-video.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/media/usb/tm6000/tm6000-video.c 
b/drivers/media/usb/tm6000/tm6000-video.c
index dee7e7d..b39247a 100644
--- a/drivers/media/usb/tm6000/tm6000-video.c
+++ b/drivers/media/usb/tm6000/tm6000-video.c
@@ -1377,8 +1377,11 @@ static int __tm6000_open(struct file *file)
 
        /* initialize hardware on analog mode */
        rc = tm6000_init_analog_mode(dev);
-       if (rc < 0)
+       if (rc < 0) {
+               v4l2_fh_exit(&fh->fh);
+               kfree(fh);
                return rc;
+       }
 
        dev->mode = TM6000_MODE_ANALOG;
 
-- 
1.9.1

Reply via email to