videoparseutils: Fix for wrong CEA708 minimum size check
authorSeungha Yang <seungha@centricular.com>
Thu, 2 Sep 2021 13:06:52 +0000 (22:06 +0900)
committerSeungha Yang <seungha@centricular.com>
Thu, 2 Sep 2021 14:17:58 +0000 (23:17 +0900)
The minimum possible size of valid CEA708 data is 3 bytes, not 7 bytes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2505>

gst/videoparsers/gstvideoparseutils.c

index cec724ac29caefc8f24a3655a778dc72a5548836..4e94d21b55d15835b7a3d531e5c0a1085a65853e 100644 (file)
@@ -142,7 +142,11 @@ gst_video_parse_user_data (GstElement * elt, GstVideoParseUserData * user_data,
       }
       switch (user_data_type_code) {
         case A53_USER_DATA_TYPE_CODE_CC_DATA:
-          if (gst_byte_reader_get_remaining (br) < 7) {
+          /* 1 (cc count byte) +
+           * 1 (reserved byte, 0xff) +
+           * 1 (marker_bits, 0xff)
+           */
+          if (gst_byte_reader_get_remaining (br) < 3) {
             GST_WARNING_OBJECT (elt,
                 "Closed caption data packet too short, ignoring");
             break;