[media] cx18: avoid going past input/audio array
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 28 Apr 2015 12:50:36 +0000 (09:50 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 30 Apr 2015 16:15:31 +0000 (13:15 -0300)
As reported by smatch:
drivers/media/pci/cx18/cx18-driver.c:807 cx18_init_struct2() error: buffer overflow 'cx->card->video_inputs' 6 <= 6

That happens because nof_inputs and nof_audio_inputs can be initialized
as CX18_CARD_MAX_VIDEO_INPUTS, instead of CX18_CARD_MAX_VIDEO_INPUTS - 1.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Acked-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/cx18/cx18-driver.c

index 83f5074706f9ad296e1bd315e377f037c87c6965..260e462d91b4a15d08958334b931ca851e263c61 100644 (file)
@@ -786,11 +786,11 @@ static void cx18_init_struct2(struct cx18 *cx)
 {
        int i;
 
-       for (i = 0; i < CX18_CARD_MAX_VIDEO_INPUTS; i++)
+       for (i = 0; i < CX18_CARD_MAX_VIDEO_INPUTS - 1; i++)
                if (cx->card->video_inputs[i].video_type == 0)
                        break;
        cx->nof_inputs = i;
-       for (i = 0; i < CX18_CARD_MAX_AUDIO_INPUTS; i++)
+       for (i = 0; i < CX18_CARD_MAX_AUDIO_INPUTS - 1; i++)
                if (cx->card->audio_inputs[i].audio_type == 0)
                        break;
        cx->nof_audio_inputs = i;
This page took 0.028494 seconds and 5 git commands to generate.