asf_read_payload can unset eof_reached, so check it also before calling
that function.
This fixes infinite loops.
Reviewed-by: Alexandra Hájková <alexandra.khirnova@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
... | ... |
@@ -1434,6 +1434,8 @@ static int asf_read_packet(AVFormatContext *s, AVPacket *pkt) |
1434 | 1434 |
while (!pb->eof_reached) { |
1435 | 1435 |
if (asf->state == PARSE_PACKET_HEADER) { |
1436 | 1436 |
asf_read_packet_header(s); |
1437 |
+ if (pb->eof_reached) |
|
1438 |
+ break; |
|
1437 | 1439 |
if (!asf->nb_mult_left) |
1438 | 1440 |
asf->state = READ_SINGLE; |
1439 | 1441 |
else |