]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map
authorRicardo Ribalda <ribalda@chromium.org>
Mon, 3 Feb 2025 11:55:51 +0000 (11:55 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:13:01 +0000 (11:13 +0200)
[ Upstream commit 990262fdfce24d6055df9711424343d94d829e6a ]

Do not process unknown data types.

Tested-by: Yunke Cao <yunkec@google.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Link: https://lore.kernel.org/r/20250203-uvc-roi-v17-15-5900a9fed613@chromium.org
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/usb/uvc/uvc_v4l2.c

index 93c6cdb238812d53e9c8daae09b364b77bf79af5..75216507cbdcf2f84a162c33e5d2f0b4522b763f 100644 (file)
@@ -108,6 +108,12 @@ static int uvc_ioctl_xu_ctrl_map(struct uvc_video_chain *chain,
        struct uvc_control_mapping *map;
        int ret;
 
+       if (xmap->data_type > UVC_CTRL_DATA_TYPE_BITMASK) {
+               uvc_dbg(chain->dev, CONTROL,
+                       "Unsupported UVC data type %u\n", xmap->data_type);
+               return -EINVAL;
+       }
+
        map = kzalloc(sizeof(*map), GFP_KERNEL);
        if (map == NULL)
                return -ENOMEM;