]> 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>
Wed, 4 Jun 2025 12:42:03 +0000 (14:42 +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 7bcd706281daf33641d821b32b706b6ddfda834a..cb7d9fb589fca92d78e37e9f064e4577ef8b6c2f 100644 (file)
@@ -106,6 +106,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;