summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorAndreas Cadhalpun <andreas.cadhalpun@googlemail.com>2016-01-06 21:09:19 +0100
committerLuca Barbato <lu_zero@gentoo.org>2016-02-07 03:12:33 +0100
commita32dbf2aed3bb720a28141e1e84284ade3969a49 (patch)
tree30839a61a14cc11e47a6c8f34bf00f76b2fefe09 /libavformat
parent389b79842c67b1f5730215a752a5f89cb1b8d9a3 (diff)
asfdec: break if EOF is reached after asf_read_packet_header
asf_read_payload can unset eof_reached, so check it also before calling that function. This fixes infinite loops. Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> Signed-off-by: Alexandra Hájková <alexandra@khirnov.net> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/asfdec.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index 90a1df4c6a..460df2aeaf 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -1425,6 +1425,8 @@ static int asf_read_packet(AVFormatContext *s, AVPacket *pkt)
while (!pb->eof_reached) {
if (asf->state == PARSE_PACKET_HEADER) {
asf_read_packet_header(s);
+ if (pb->eof_reached)
+ break;
if (!asf->nb_mult_left)
asf->state = READ_SINGLE;
else