Commit 5dd76bd7 authored by Reimar Döffinger's avatar Reimar Döffinger

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

Originally committed as revision 20099 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 58f873dd
...@@ -250,6 +250,8 @@ static int mpc8_read_packet(AVFormatContext *s, AVPacket *pkt) ...@@ -250,6 +250,8 @@ static int mpc8_read_packet(AVFormatContext *s, AVPacket *pkt)
while(!url_feof(s->pb)){ while(!url_feof(s->pb)){
pos = url_ftell(s->pb); pos = url_ftell(s->pb);
mpc8_get_chunk_header(s->pb, &tag, &size); mpc8_get_chunk_header(s->pb, &tag, &size);
if (size < 0)
return -1;
if(tag == TAG_AUDIOPACKET){ if(tag == TAG_AUDIOPACKET){
if(av_get_packet(s->pb, pkt, size) < 0) if(av_get_packet(s->pb, pkt, size) < 0)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment