linux/drivers/media/usb/gspca
Johan Hovold a246b4d547 media: xirlink_cit: add missing descriptor sanity checks
Make sure to check that we have two alternate settings and at least one
endpoint before accessing the second altsetting structure and
dereferencing the endpoint arrays.

This specifically avoids dereferencing NULL-pointers or corrupting
memory when a device does not have the expected descriptors.

Note that the sanity check in cit_get_packet_size() is not redundant as
the driver is mixing looking up altsettings by index and by number,
which may not coincide.

Fixes: 659fefa0eb ("V4L/DVB: gspca_xirlink_cit: Add support for camera with a bcd version of 0.01")
Fixes: 59f8b0bf3c ("V4L/DVB: gspca_xirlink_cit: support bandwidth changing for devices with 1 alt setting")
Cc: stable <stable@vger.kernel.org>     # 2.6.37
Cc: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-03-12 17:27:07 +01:00
..
gl860 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 65 2019-05-24 17:36:46 +02:00
m5602 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 2019-06-05 17:37:10 +02:00
stv06xx media: stv06xx: add missing descriptor sanity checks 2020-03-12 17:26:42 +01:00
autogain_functions.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
benq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
conex.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
cpia1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
dtcs033.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
etoms.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 131 2019-05-30 11:25:14 -07:00
finepix.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
gspca.c media: media/usb: rename VFL_TYPE_GRABBER to _VIDEO 2020-02-24 16:53:16 +01:00
gspca.h media: gspca: convert to vb2 2018-05-28 15:57:17 -04:00
jeilinj.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
jl2005bcd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
jpeg.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
kinect.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
konica.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mars.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
mr97310a.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
nw80x.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
ov519.c media: ov519: add missing endpoint sanity checks 2020-03-12 17:25:51 +01:00
ov534_9.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
ov534.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
pac207.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
pac7302.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
pac7311.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
pac_common.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
se401.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
se401.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
sn9c20x.c media: sn9c20x: Add MSI MS-1039 laptop to flip_dmi_table 2019-08-26 10:43:20 -03:00
sn9c2028.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
sn9c2028.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
sonixb.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
sonixj.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
spca500.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
spca501.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
spca505.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
spca506.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
spca508.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
spca561.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
spca1528.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
sq905.c media: usb: null check create_singlethread_workqueue 2019-10-10 07:18:10 -03:00
sq905c.c media: gspca: null check create_singlethread_workqueue 2019-10-10 07:17:54 -03:00
sq930x.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
stk014.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
stk1135.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
stk1135.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
stv0680.c media: gspca: remove redundant assignment to variable ret 2019-10-24 18:32:52 -03:00
sunplus.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
t613.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
topro.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
touptek.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
tv8532.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
vc032x.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
vicam.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 2019-05-21 11:52:39 +02:00
w996Xcf.c media: gspca: zero usb_buf on error 2019-08-19 12:10:47 -03:00
xirlink_cit.c media: xirlink_cit: add missing descriptor sanity checks 2020-03-12 17:27:07 +01:00
zc3xx-reg.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 258 2019-06-05 17:30:27 +02:00
zc3xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00