]> Git Repo - J-linux.git/commitdiff
media: uvcvideo: Skip parsing frames of type UVC_VS_UNDEFINED in uvc_parse_format
authorBenoit Sevens <[email protected]>
Thu, 7 Nov 2024 14:22:02 +0000 (14:22 +0000)
committerHans Verkuil <[email protected]>
Sat, 9 Nov 2024 12:17:42 +0000 (13:17 +0100)
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: c0efd232929c ("V4L/DVB (8145a): USB Video Class driver")
Signed-off-by: Benoit Sevens <[email protected]>
Cc: [email protected]
Acked-by: Greg Kroah-Hartman <[email protected]>
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
drivers/media/usb/uvc/uvc_driver.c

index f0febdc08c2d65208fca266c5d8d6b7c73394e77..2bba7123ea5e98ac9e2079b9d216648d5e4c83e2 100644 (file)
@@ -371,7 +371,7 @@ static int uvc_parse_format(struct uvc_device *dev,
         * Parse the frame descriptors. Only uncompressed, MJPEG and frame
         * based formats have frame descriptors.
         */
-       while (buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
+       while (ftype && buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
               buffer[2] == ftype) {
                unsigned int maxIntervalIndex;
 
This page took 0.051974 seconds and 4 git commands to generate.