mov: Do not try to parse multiple stsd for the same track
authorLuca Barbato <lu_zero@gentoo.org>
Sat, 11 Feb 2017 21:44:08 +0000 (21:44 +0000)
committerLuca Barbato <lu_zero@gentoo.org>
Tue, 14 Feb 2017 23:40:00 +0000 (00:40 +0100)
Bug-Id: 1017
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavformat/mov.c

index 11bcff0..5c9f85c 100644 (file)
@@ -1911,6 +1911,12 @@ static int mov_read_stsd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
     avio_rb24(pb); /* flags */
     entries = avio_rb32(pb);
 
+    if (sc->extradata) {
+        av_log(c->fc, AV_LOG_ERROR,
+               "Duplicate stsd found in this track.\n");
+        return AVERROR_INVALIDDATA;
+    }
+
     /* Prepare space for hosting multiple extradata. */
     sc->extradata = av_mallocz_array(entries, sizeof(*sc->extradata));
     if (!sc->extradata)