From: Roel Kluin <roel.kluin@gmail.com> Date: Tue, 11 Aug 2009 01:17:25 +0000 (-0300) Subject: V4L/DVB (12436): stk-webcam: read buffer overflow X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=77f2c2db1146154fb054e9ce955928a66d8c959f;p=linux.git V4L/DVB (12436): stk-webcam: read buffer overflow It tested the value of stk_sizes[i].m before checking whether i was in range. Cc: Hans Verkuil <hverkuil@xs4all.nl> Cc: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> --- diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c index 4d6785e634556..b154bd961e3b7 100644 --- a/drivers/media/video/stk-webcam.c +++ b/drivers/media/video/stk-webcam.c @@ -1050,8 +1050,8 @@ static int stk_setup_format(struct stk_camera *dev) depth = 1; else depth = 2; - while (stk_sizes[i].m != dev->vsettings.mode - && i < ARRAY_SIZE(stk_sizes)) + while (i < ARRAY_SIZE(stk_sizes) && + stk_sizes[i].m != dev->vsettings.mode) i++; if (i == ARRAY_SIZE(stk_sizes)) { STK_ERROR("Something is broken in %s\n", __func__);