Commit af4cc260 authored by Luca Barbato's avatar Luca Barbato

id3v2: check for end of file while unescaping tags

Prevent a serious out of buffer bound write.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
parent 76d23f40
...@@ -644,9 +644,10 @@ static void id3v2_parse(AVFormatContext *s, int len, uint8_t version, ...@@ -644,9 +644,10 @@ static void id3v2_parse(AVFormatContext *s, int len, uint8_t version,
goto seek; goto seek;
} }
b = buffer; b = buffer;
while (avio_tell(s->pb) < end) { while (avio_tell(s->pb) < end && !s->pb->eof_reached) {
*b++ = avio_r8(s->pb); *b++ = avio_r8(s->pb);
if (*(b - 1) == 0xff && avio_tell(s->pb) < end - 1) { if (*(b - 1) == 0xff && avio_tell(s->pb) < end - 1 &&
!s->pb->eof_reached ) {
uint8_t val = avio_r8(s->pb); uint8_t val = avio_r8(s->pb);
*b++ = val ? val : avio_r8(s->pb); *b++ = val ? val : avio_r8(s->pb);
} }
......
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