| From c680ed46e418e9c785d76cf44eb33bfd1e8cf3f6 Mon Sep 17 00:00:00 2001 |
| From: Pavel Skripkin <paskripkin@gmail.com> |
| Date: Fri, 7 May 2021 14:50:43 +0200 |
| Subject: media: dvb-usb: fix wrong definition |
| |
| From: Pavel Skripkin <paskripkin@gmail.com> |
| |
| commit c680ed46e418e9c785d76cf44eb33bfd1e8cf3f6 upstream. |
| |
| syzbot reported WARNING in vmalloc. The problem |
| was in zero size passed to vmalloc. |
| |
| The root case was in wrong cxusb_bluebird_lgz201_properties |
| definition. adapter array has only 1 entry, but num_adapters was |
| 2. |
| |
| Call Trace: |
| __vmalloc_node mm/vmalloc.c:2963 [inline] |
| vmalloc+0x67/0x80 mm/vmalloc.c:2996 |
| dvb_dmx_init+0xe4/0xb90 drivers/media/dvb-core/dvb_demux.c:1251 |
| dvb_usb_adapter_dvb_init+0x564/0x860 drivers/media/usb/dvb-usb/dvb-usb-dvb.c:184 |
| dvb_usb_adapter_init drivers/media/usb/dvb-usb/dvb-usb-init.c:86 [inline] |
| dvb_usb_init drivers/media/usb/dvb-usb/dvb-usb-init.c:184 [inline] |
| dvb_usb_device_init.cold+0xc94/0x146e drivers/media/usb/dvb-usb/dvb-usb-init.c:308 |
| cxusb_probe+0x159/0x5e0 drivers/media/usb/dvb-usb/cxusb.c:1634 |
| |
| Fixes: 4d43e13f723e ("V4L/DVB (4643): Multi-input patch for DVB-USB device") |
| Cc: stable@vger.kernel.org |
| Reported-by: syzbot+7336195c02c1bd2f64e1@syzkaller.appspotmail.com |
| Signed-off-by: Pavel Skripkin <paskripkin@gmail.com> |
| Signed-off-by: Sean Young <sean@mess.org> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/media/usb/dvb-usb/cxusb.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/media/usb/dvb-usb/cxusb.c |
| +++ b/drivers/media/usb/dvb-usb/cxusb.c |
| @@ -1947,7 +1947,7 @@ static struct dvb_usb_device_properties |
| |
| .size_of_priv = sizeof(struct cxusb_state), |
| |
| - .num_adapters = 2, |
| + .num_adapters = 1, |
| .adapter = { |
| { |
| .num_frontends = 1, |