diff options
author | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-04-28 10:35:13 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-04-30 13:36:15 -0300 |
commit | 09290cc885937cab3b2d60a6d48fe3d2d3e04061 (patch) | |
tree | 093b749c6979576f9f38e67da7c71e7944e834da /drivers/media/pci/ivtv/ivtv-driver.c | |
parent | 1cb3b79532a3012fa4b20c8ac344e48a92b5b4d3 (diff) | |
download | blackbird-op-linux-09290cc885937cab3b2d60a6d48fe3d2d3e04061.tar.gz blackbird-op-linux-09290cc885937cab3b2d60a6d48fe3d2d3e04061.zip |
[media] ivtv: avoid going past input/audio array
As reported by smatch:
drivers/media/pci/ivtv/ivtv-driver.c:832 ivtv_init_struct2() error: buffer overflow 'itv->card->video_inputs' 6 <= 6
That happens because nof_inputs and nof_audio_inputs can be initialized
as IVTV_CARD_MAX_VIDEO_INPUTS, instead of IVTV_CARD_MAX_VIDEO_INPUTS - 1.
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/pci/ivtv/ivtv-driver.c')
-rw-r--r-- | drivers/media/pci/ivtv/ivtv-driver.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c index c2e60b4f292d..8616fa8193bc 100644 --- a/drivers/media/pci/ivtv/ivtv-driver.c +++ b/drivers/media/pci/ivtv/ivtv-driver.c @@ -805,11 +805,11 @@ static void ivtv_init_struct2(struct ivtv *itv) { int i; - for (i = 0; i < IVTV_CARD_MAX_VIDEO_INPUTS; i++) + for (i = 0; i < IVTV_CARD_MAX_VIDEO_INPUTS - 1; i++) if (itv->card->video_inputs[i].video_type == 0) break; itv->nof_inputs = i; - for (i = 0; i < IVTV_CARD_MAX_AUDIO_INPUTS; i++) + for (i = 0; i < IVTV_CARD_MAX_AUDIO_INPUTS - 1; i++) if (itv->card->audio_inputs[i].audio_type == 0) break; itv->nof_audio_inputs = i; |