From: Greg Kroah-Hartman Date: Sun, 10 Nov 2024 05:21:32 +0000 (+0100) Subject: 4.19-stable patches X-Git-Tag: v5.15.172~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5981257e15f1b7b504fc30d972f8b0fa237fc9d0;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: media-uvcvideo-skip-parsing-frames-of-type-uvc_vs_undefined-in-uvc_parse_format.patch --- diff --git a/queue-4.19/media-uvcvideo-skip-parsing-frames-of-type-uvc_vs_undefined-in-uvc_parse_format.patch b/queue-4.19/media-uvcvideo-skip-parsing-frames-of-type-uvc_vs_undefined-in-uvc_parse_format.patch new file mode 100644 index 00000000000..729b630e910 --- /dev/null +++ b/queue-4.19/media-uvcvideo-skip-parsing-frames-of-type-uvc_vs_undefined-in-uvc_parse_format.patch @@ -0,0 +1,35 @@ +From ecf2b43018da9579842c774b7f35dbe11b5c38dd Mon Sep 17 00:00:00 2001 +From: Benoit Sevens +Date: Thu, 7 Nov 2024 14:22:02 +0000 +Subject: media: uvcvideo: Skip parsing frames of type UVC_VS_UNDEFINED in uvc_parse_format + +From: Benoit Sevens + +commit ecf2b43018da9579842c774b7f35dbe11b5c38dd 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: c0efd232929c ("V4L/DVB (8145a): USB Video Class driver") +Signed-off-by: Benoit Sevens +Cc: stable@vger.kernel.org +Acked-by: Greg Kroah-Hartman +Reviewed-by: Laurent Pinchart +Signed-off-by: Hans Verkuil +Signed-off-by: Greg Kroah-Hartman +--- + drivers/media/usb/uvc/uvc_driver.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/media/usb/uvc/uvc_driver.c ++++ b/drivers/media/usb/uvc/uvc_driver.c +@@ -575,7 +575,7 @@ static int uvc_parse_format(struct uvc_d + /* 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) { + frame = &format->frame[format->nframes]; + if (ftype != UVC_VS_FRAME_FRAME_BASED) diff --git a/queue-4.19/series b/queue-4.19/series index 187c1c672b5..bbbbf0aae63 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -26,3 +26,4 @@ nfs-fix-kmsan-warning-in-decode_getfattr_attrs.patch btrfs-reinitialize-delayed-ref-list-after-deleting-it-from-the-list.patch bonding-gcc13-synchronize-bond_-a-t-lb_xmit-types.patch net-bridge-xmit-make-sure-we-have-at-least-eth-header-len-bytes.patch +media-uvcvideo-skip-parsing-frames-of-type-uvc_vs_undefined-in-uvc_parse_format.patch