Skip to content

Commit 5e90258

Browse files
committed
media: uvcvideo: Skip parsing frames of type UVC_VS_UNDEFINED in uvc_parse_format
jira VULN-9674 cve CVE-2024-53104 commit-author Benoit Sevens <bsevens@google.com> commit ecf2b43 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> (cherry picked from commit ecf2b43) Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>
1 parent 8791d08 commit 5e90258

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/media/usb/uvc/uvc_driver.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ static int uvc_parse_format(struct uvc_device *dev,
672672
* Parse the frame descriptors. Only uncompressed, MJPEG and frame
673673
* based formats have frame descriptors.
674674
*/
675-
while (buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
675+
while (ftype && buflen > 2 && buffer[1] == USB_DT_CS_INTERFACE &&
676676
buffer[2] == ftype) {
677677
frame = &format->frame[format->nframes];
678678
if (ftype != UVC_VS_FRAME_FRAME_BASED)

0 commit comments

Comments
 (0)