asf: don't seek back on EOF.
authorRonald S. Bultje <rsbultje@gmail.com>
Wed, 29 Feb 2012 00:13:46 +0000 (16:13 -0800)
committerRonald S. Bultje <rsbultje@gmail.com>
Wed, 29 Feb 2012 00:25:05 +0000 (16:25 -0800)
Seeking back on EOF will reset the EOF flag, causing us to re-enter
the loop to find the next marker in the ASF file, thus potentially
causing an infinite loop.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
libavformat/asfdec.c

index 01411fa..8828eb5 100644 (file)
@@ -761,7 +761,7 @@ static int ff_asf_get_packet(AVFormatContext *s, AVIOContext *pb)
         c= avio_r8(pb);
         d= avio_r8(pb);
         rsize+=3;
-    }else{
+    } else if (!pb->eof_reached) {
         avio_seek(pb, -1, SEEK_CUR); //FIXME
     }