]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: uapi: v4l: Change V4L2_TYPE_IS_CAPTURE condition
authorNas Chung <nas.chung@chipsnmedia.com>
Thu, 25 Jul 2024 06:10:32 +0000 (15:10 +0900)
committerHans Verkuil <hverkuil@xs4all.nl>
Mon, 7 Apr 2025 11:28:25 +0000 (13:28 +0200)
Explicitly compare a buffer type only with valid buffer types,
to avoid matching a buffer type outside of the valid buffer type set.

Signed-off-by: Nas Chung <nas.chung@chipsnmedia.com>
Reviewed-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
include/uapi/linux/videodev2.h

index c8cb2796130f8d1b864d669267d2b31f73b839aa..ccd6ad53432ea7661d5adabc493e7fcd9557cf5f 100644 (file)
@@ -153,10 +153,18 @@ enum v4l2_buf_type {
        V4L2_BUF_TYPE_SDR_OUTPUT           = 12,
        V4L2_BUF_TYPE_META_CAPTURE         = 13,
        V4L2_BUF_TYPE_META_OUTPUT          = 14,
+       /*
+        * Note: V4L2_TYPE_IS_VALID and V4L2_TYPE_IS_OUTPUT must
+        * be updated if a new type is added.
+        */
        /* Deprecated, do not use */
        V4L2_BUF_TYPE_PRIVATE              = 0x80,
 };
 
+#define V4L2_TYPE_IS_VALID(type)                \
+       ((type) >= V4L2_BUF_TYPE_VIDEO_CAPTURE &&\
+        (type) <= V4L2_BUF_TYPE_META_OUTPUT)
+
 #define V4L2_TYPE_IS_MULTIPLANAR(type)                 \
        ((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE   \
         || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
@@ -171,7 +179,8 @@ enum v4l2_buf_type {
         || (type) == V4L2_BUF_TYPE_SDR_OUTPUT                  \
         || (type) == V4L2_BUF_TYPE_META_OUTPUT)
 
-#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type))
+#define V4L2_TYPE_IS_CAPTURE(type)     \
+       (V4L2_TYPE_IS_VALID(type) && !V4L2_TYPE_IS_OUTPUT(type))
 
 enum v4l2_tuner_type {
        V4L2_TUNER_RADIO             = 1,