asf: don't seek back on EOF.
authorRonald S. Bultje <rsbultje@gmail.com>
Wed, 29 Feb 2012 00:13:46 +0000 (16:13 -0800)
committerReinhard Tartler <siretart@tauware.de>
Wed, 29 Feb 2012 13:22:35 +0000 (14:22 +0100)
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
(cherry picked from commit bb6d5411e1e1a8e0608b1af1c4addee654dcbac5)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
libavformat/asfdec.c

index 1fbe79b..969ab28 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
     }