# HG changeset patch # User reimar # Date 1254317713 0 # Node ID da61aef912cb4c2b05f5caf955b018c91167f708 # Parent 432736854b4ce20842710e20f213d4dfa94d9841 Return an error when the parsed mpc chunk size is negative, otherwise we might end up in an endless loop where the same chunk is parsed over and over. Fixes a hang near the end for http://samples.mplayerhq.hu/A-codecs/musepack/sv8/sv8-tags.mpc diff -r 432736854b4c -r da61aef912cb mpc8.c --- a/mpc8.c Wed Sep 30 09:46:48 2009 +0000 +++ b/mpc8.c Wed Sep 30 13:35:13 2009 +0000 @@ -250,6 +250,8 @@ while(!url_feof(s->pb)){ pos = url_ftell(s->pb); mpc8_get_chunk_header(s->pb, &tag, &size); + if (size < 0) + return -1; if(tag == TAG_AUDIOPACKET){ if(av_get_packet(s->pb, pkt, size) < 0) return AVERROR(ENOMEM);