[v4l-dvb-maintainer] [2.6.26.y PATCH 3/7] V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing

Michael Krufky mkrufky at linuxtv.org
Tue Jul 22 03:53:45 CEST 2008


From: Laurent Pinchart <laurent.pinchart at skynet.be>

V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing

Thanks to Oliver Neukum for catching and reporting this bug.

Signed-off-by: Laurent Pinchart <laurent.pinchart at skynet.be>
Signed-off-by: Mauro Carvalho Chehab <mchehab at infradead.org>
Signed-off-by: Michael Krufky <mkrufky at linuxtv.org>
(cherry picked from commit 233548a2fd934a0220db8b1521c0bc88c82e5e53)
---
 drivers/media/video/uvc/uvc_driver.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c
index 60ced58..86bb16d 100644
--- a/drivers/media/video/uvc/uvc_driver.c
+++ b/drivers/media/video/uvc/uvc_driver.c
@@ -298,7 +298,8 @@ static int uvc_parse_format(struct uvc_device *dev,
 	switch (buffer[2]) {
 	case VS_FORMAT_UNCOMPRESSED:
 	case VS_FORMAT_FRAME_BASED:
-		if (buflen < 27) {
+		n = buffer[2] == VS_FORMAT_UNCOMPRESSED ? 27 : 28;
+		if (buflen < n) {
 			uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
 			       "interface %d FORMAT error\n",
 			       dev->udev->devnum,



More information about the v4l-dvb-maintainer mailing list