@@ -73,6 +73,7 @@ static int mp3_read_probe(const AVProbeData *p)
int frames, ret;
int framesizes, max_framesizes;
uint32_t header;
+ uint32_t next;
const uint8_t *buf, *buf0, *buf2, *end;
buf0 = p->buf;
@@ -93,6 +94,10 @@ static int mp3_read_probe(const AVProbeData *p)
ret = avpriv_mpegaudio_decode_header(&h, header);
if (ret != 0)
break;
+ next = AV_RB32(buf2 + 4);
+ /* detect invalid data after header */
+ if ((header & 0xfffe0000) == (next & 0xfffe0000))
+ break;
buf2 += h.frame_size;
framesizes += h.frame_size;
}