Message ID | 20210814094009.GA66453@nilus-desk |
---|---|
State | Accepted |
Commit | cefdc9510a16f59de6ff82ed90c841545ec0aa13 |
Headers | show |
Series | media: dvb-frontends: clean the freed pointer and counter | expand |
diff --git a/drivers/media/dvb-frontends/rtl2832_sdr.c b/drivers/media/dvb-frontends/rtl2832_sdr.c index 1a2f0d2ad..6a4f2997d 100644 --- a/drivers/media/dvb-frontends/rtl2832_sdr.c +++ b/drivers/media/dvb-frontends/rtl2832_sdr.c @@ -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],
After freed the dev->urb_list, we should set it to NULL as well as set counter to zero. Signed-off-by: Nil Yi <teroincn@163.com> Asked-by: Sean Young <sean@mess.org> --- drivers/media/dvb-frontends/rtl2832_sdr.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)