media: rtl2832_sdr: clean the freed pointer and counter
authorNil Yi <teroincn@163.com>
Sat, 14 Aug 2021 09:40:09 +0000 (11:40 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 8 Oct 2021 11:54:16 +0000 (13:54 +0200)
After freed the dev->urb_list, we should set it to NULL as well as set
counter to zero.

Requested-by: Sean Young <sean@mess.org>
Signed-off-by: Nil Yi <teroincn@163.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/dvb-frontends/rtl2832_sdr.c

index 1a2f0d2..6a4f299 100644 (file)
@@ -376,8 +376,11 @@ static int rtl2832_sdr_alloc_urbs(struct rtl2832_sdr_dev *dev)
                dev_dbg(&pdev->dev, "alloc urb=%d\n", i);
                dev->urb_list[i] = usb_alloc_urb(0, GFP_KERNEL);
                if (!dev->urb_list[i]) {
-                       for (j = 0; j < i; j++)
+                       for (j = 0; j < i; j++) {
                                usb_free_urb(dev->urb_list[j]);
+                               dev->urb_list[j] = NULL;
+                       }
+                       dev->urbs_initialized = 0;
                        return -ENOMEM;
                }
                usb_fill_bulk_urb(dev->urb_list[i],