You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
mov: fix a possible invalid read in mov_read_mac_string()
When the input string is too large, so the second condition in if () fails, the code will erroneously execute the else branch, indexing the mac_to_unicode table with a negative index. CC: libav-stable@libav.org Bug-Id: 1000 Found-By: Kamil Frankowicz
This commit is contained in:
@@ -161,7 +161,11 @@ static int mov_read_mac_string(MOVContext *c, AVIOContext *pb, int len,
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
uint8_t t, c = avio_r8(pb);
|
||||
if (c < 0x80 && p < end)
|
||||
|
||||
if (p >= end)
|
||||
continue;
|
||||
|
||||
if (c < 0x80)
|
||||
*p++ = c;
|
||||
else
|
||||
PUT_UTF8(mac_to_unicode[c-0x80], t, if (p < end) *p++ = t;);
|
||||
|
Reference in New Issue
Block a user