Skip to content

Commit faff5bb

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 5470873 commit faff5bb

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
@@ -661,7 +661,7 @@ static int uvc_parse_format(struct uvc_device *dev,
661661
/* Parse the frame descriptors. Only uncompressed, MJPEG and frame
662662
* based formats have frame descriptors.
663663
*/
664-
while (buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
664+
while (ftype && buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
665665
buffer[2] == ftype) {
666666
frame = &format->frame[format->nframes];
667667
if (ftype != UVC_VS_FRAME_FRAME_BASED)

0 commit comments

Comments
 (0)