]> 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:37:59 +0000 (14:37 +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 a86d470a9f98ff3133a84a075256f335cc161756..2f8b485ddde04274a85a7f6a02fdc609951f7763 100644 (file)
@@ -35,6 +35,12 @@ static int uvc_ioctl_ctrl_map(struct uvc_video_chain *chain,
        unsigned int size;
        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;