MOV: fix crash when 'meta' occurs before first 'trak'
authorAlex Converse <alex.converse@gmail.com>
Tue, 3 Mar 2009 18:19:44 +0000 (18:19 +0000)
committerAlex Converse <alex.converse@gmail.com>
Tue, 3 Mar 2009 18:19:44 +0000 (18:19 +0000)
Originally committed as revision 17781 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mov.c

index b34326c..88f8003 100644 (file)
@@ -308,10 +308,15 @@ static int mov_read_dref(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
 
 static int mov_read_hdlr(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
 {
 
 static int mov_read_hdlr(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
 {
-    AVStream *st = c->fc->streams[c->fc->nb_streams-1];
+    AVStream *st;
     uint32_t type;
     uint32_t ctype;
 
     uint32_t type;
     uint32_t ctype;
 
+    if (c->fc->nb_streams < 1) // meta before first trak
+        return 0;
+
+    st = c->fc->streams[c->fc->nb_streams-1];
+
     get_byte(pb); /* version */
     get_be24(pb); /* flags */
 
     get_byte(pb); /* version */
     get_be24(pb); /* flags */