av1_metadata: Error out if fragment is empty
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Wed, 19 Jun 2019 23:45:00 +0000 (01:45 +0200)
committerMark Thompson <sw@jkqxz.net>
Sun, 7 Jul 2019 21:40:55 +0000 (22:40 +0100)
If the fragment is empty after parsing (i.e. it contains no OBUs), then
the check for the type of the fragment's first OBU is nonsensical; so
error out in this case just as h264_metadata and hevc_metadata do.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavcodec/av1_metadata_bsf.c

index 842b80c..bb2ca20 100644 (file)
@@ -133,6 +133,12 @@ static int av1_metadata_filter(AVBSFContext *bsf, AVPacket *pkt)
         goto fail;
     }
 
+    if (frag->nb_units == 0) {
+        av_log(bsf, AV_LOG_ERROR, "No OBU in packet.\n");
+        err = AVERROR_INVALIDDATA;
+        goto fail;
+    }
+
     for (i = 0; i < frag->nb_units; i++) {
         if (frag->units[i].type == AV1_OBU_SEQUENCE_HEADER) {
             obu = frag->units[i].content;