linux/drivers/media
Dan Carpenter c1ced46c7b media: pvrusb2: Prevent a buffer overflow
The ctrl_check_input() function is called from pvr2_ctrl_range_check().
It's supposed to validate user supplied input and return true or false
depending on whether the input is valid or not.  The problem is that
negative shifts or shifts greater than 31 are undefined in C.  In
practice with GCC they result in shift wrapping so this function returns
true for some inputs which are not valid and this could result in a
buffer overflow:

    drivers/media/usb/pvrusb2/pvrusb2-ctrl.c:205 pvr2_ctrl_get_valname()
    warn: uncapped user index 'names[val]'

The cptr->hdw->input_allowed_mask mask is configured in pvr2_hdw_create()
and the highest valid bit is BIT(4).

Fixes: 7fb20fa38c ("V4L/DVB (7299): pvrusb2: Improve logic which handles input choice availability")

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2019-04-22 11:45:08 -04:00
..
cec media: Kconfig files: use the right help coding style 2019-03-20 06:47:51 -04:00
common media: videobuf2-v4l2.c: move up STATE_DEQUEUED check 2019-04-22 11:43:00 -04:00
dvb-core media: dvbdev: remove double-unlock 2019-03-28 14:36:14 -04:00
dvb-frontends media: dvb: clean up redundant break statements 2019-04-22 11:03:26 -04:00
firewire media: firewire: Fix app_info parameter type in avc_ca{,_app}_info 2018-12-05 05:34:33 -05:00
i2c media: st-mipid02: MIPID02 CSI-2 to PARALLEL bridge driver 2019-04-22 11:39:20 -04:00
mmc media: Kconfig files: use the right help coding style 2019-03-20 06:47:51 -04:00
pci media: bt8xx: avoid a needless u8 to char conversion 2019-03-29 10:29:40 -04:00
platform media: vivid: use vfree() instead of kfree() for dev->bitmap_cap 2019-04-22 11:43:50 -04:00
radio media: replace strncpy() by strscpy() 2019-03-29 10:26:13 -04:00
rc media: Kconfig files: use the right help coding style 2019-03-20 06:47:51 -04:00
spi media: Kconfig files: use the right help coding style 2019-03-20 06:47:51 -04:00
tuners media: tuners: fix several typos 2019-03-01 09:40:29 -05:00
usb media: pvrusb2: Prevent a buffer overflow 2019-04-22 11:45:08 -04:00
v4l2-core media: v4l2-common: add bayer formats in v4l2_format_info 2019-04-22 10:33:45 -04:00
Kconfig media: Kconfig files: use the right help coding style 2019-03-20 06:47:51 -04:00
Makefile media: Media Device Allocator API 2019-04-22 11:18:26 -04:00
media-dev-allocator.c media: Media Device Allocator API 2019-04-22 11:18:26 -04:00
media-device.c media: Add a Kconfig option for the Request API 2018-12-05 13:07:43 -05:00
media-devnode.c media: Clear devnode->media_dev holding media_devnode_lock 2019-04-22 11:24:33 -04:00
media-entity.c media: replace WARN_ON in __media_pipeline_start() 2019-03-19 14:01:08 -04:00
media-request.c media: media requests: return EBADR instead of EACCES 2019-03-25 13:26:10 -04:00