]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
media: stkwebcam: fix memory leak in stk_camera_probe
authorPavel Skripkin <paskripkin@gmail.com>
Wed, 7 Jul 2021 17:54:30 +0000 (19:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Sep 2021 09:47:46 +0000 (11:47 +0200)
commit 514e97674400462cc09c459a1ddfb9bf39017223 upstream.

My local syzbot instance hit memory leak in usb_set_configuration().
The problem was in unputted usb interface. In case of errors after
usb_get_intf() the reference should be putted to correclty free memory
allocated for this interface.

Fixes: ec16dae5453e ("V4L/DVB (7019): V4L: add support for Syntek DC1125 webcams")
Cc: stable@vger.kernel.org
Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/usb/stkwebcam/stk-webcam.c

index e33fa78ef98dda3b36c77640e3e8f6fd8a156d94..f46db1b6a27c4ddc0fd216fe5e71c9ed9881fbcf 100644 (file)
@@ -1355,7 +1355,7 @@ static int stk_camera_probe(struct usb_interface *interface,
        if (!dev->isoc_ep) {
                pr_err("Could not find isoc-in endpoint\n");
                err = -ENODEV;
-               goto error;
+               goto error_put;
        }
        dev->vsettings.palette = V4L2_PIX_FMT_RGB565;
        dev->vsettings.mode = MODE_VGA;
@@ -1368,10 +1368,12 @@ static int stk_camera_probe(struct usb_interface *interface,
 
        err = stk_register_video_device(dev);
        if (err)
-               goto error;
+               goto error_put;
 
        return 0;
 
+error_put:
+       usb_put_intf(interface);
 error:
        v4l2_ctrl_handler_free(hdl);
        v4l2_device_unregister(&dev->v4l2_dev);