mov: reject zero bytes_per_frame with non-zero samples_per_frame
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Tue, 26 May 2015 13:24:37 +0000 (14:24 +0100)
committerLuca Barbato <lu_zero@gentoo.org>
Sun, 31 May 2015 11:05:12 +0000 (13:05 +0200)
In this case the mov demuxer can return a large number of empty packets.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavformat/mov.c

index fbbfef0..2cf6e8e 100644 (file)
@@ -2263,6 +2263,13 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
                 AVIndexEntry *e;
                 unsigned size, samples;
 
+                if (sc->samples_per_frame > 1 && !sc->bytes_per_frame) {
+                    avpriv_request_sample(mov->fc,
+                           "Zero bytes per frame, but %d samples per frame",
+                           sc->samples_per_frame);
+                    return;
+                }
+
                 if (sc->samples_per_frame >= 160) { // gsm
                     samples = sc->samples_per_frame;
                     size = sc->bytes_per_frame;