Make flic probe check a few more things.
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 14 Jul 2008 22:55:07 +0000 (22:55 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 14 Jul 2008 22:55:07 +0000 (22:55 +0000)
fixes issue399

Originally committed as revision 14235 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/flic.c

index f22a5ee..62ea94e 100644 (file)
@@ -54,12 +54,25 @@ static int flic_probe(AVProbeData *p)
 {
     int magic_number;
 
+    if(p->buf_size < FLIC_HEADER_SIZE)
+        return 0;
+
     magic_number = AV_RL16(&p->buf[4]);
     if ((magic_number != FLIC_FILE_MAGIC_1) &&
         (magic_number != FLIC_FILE_MAGIC_2) &&
         (magic_number != FLIC_FILE_MAGIC_3))
         return 0;
 
+    if(AV_RL16(&p->buf[0x10]) != FLIC_CHUNK_MAGIC_1){
+        if(AV_RL32(&p->buf[0x10]) > 2000)
+            return 0;
+    }
+
+    if(   AV_RL16(&p->buf[0x08]) > 4096
+       || AV_RL16(&p->buf[0x0A]) > 4096)
+        return 0;
+
+
     return AVPROBE_SCORE_MAX;
 }