Skip to content

Commit 684022f

Browse files
dlelcldkekslelegregkh
authored andcommitted
media: uvcvideo: Skip parsing frames of type UVC_VS_UNDEFINED in uvc_parse_format
commit ecf2b43 upstream. This can lead to out of bounds writes since frames of this type were not taken into account when calculating the size of the frames buffer in uvc_parse_streaming. Fixes: c0efd23 ("V4L/DVB (8145a): USB Video Class driver") Signed-off-by: Benoit Sevens <bsevens@google.com> Cc: stable@vger.kernel.org Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent b2b7c43 commit 684022f

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/media/usb/uvc/uvc_driver.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ static int uvc_parse_format(struct uvc_device *dev,
602602
/* Parse the frame descriptors. Only uncompressed, MJPEG and frame
603603
* based formats have frame descriptors.
604604
*/
605-
while (buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
605+
while (ftype && buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
606606
buffer[2] == ftype) {
607607
frame = &format->frame[format->nframes];
608608
if (ftype != UVC_VS_FRAME_FRAME_BASED)

0 commit comments

Comments
 (0)