Skip to content

Commit beced2c

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 c8ec4e4 commit beced2c

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
@@ -368,7 +368,7 @@ static int uvc_parse_format(struct uvc_device *dev,
368368
* Parse the frame descriptors. Only uncompressed, MJPEG and frame
369369
* based formats have frame descriptors.
370370
*/
371-
while (buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
371+
while (ftype && buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
372372
buffer[2] == ftype) {
373373
frame = &format->frame[format->nframes];
374374
if (ftype != UVC_VS_FRAME_FRAME_BASED)

0 commit comments

Comments
 (0)