Commit 4843227b authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/iff: ensure that runs with insufficient input dont leave uninitialized bytes in the output

Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7fa0dea15eae_8988_test.iff
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 7340718d
...@@ -488,12 +488,12 @@ static int decode_byterun(uint8_t *dst, int dst_size, ...@@ -488,12 +488,12 @@ static int decode_byterun(uint8_t *dst, int dst_size,
unsigned length; unsigned length;
const int8_t value = *buf++; const int8_t value = *buf++;
if (value >= 0) { if (value >= 0) {
length = value + 1; length = FFMIN3(value + 1, dst_size - x, buf_end - buf);
memcpy(dst + x, buf, FFMIN3(length, dst_size - x, buf_end - buf)); memcpy(dst + x, buf, length);
buf += length; buf += length;
} else if (value > -128) { } else if (value > -128) {
length = -value + 1; length = FFMIN(-value + 1, dst_size - x);
memset(dst + x, *buf++, FFMIN(length, dst_size - x)); memset(dst + x, *buf++, length);
} else { // noop } else { // noop
continue; continue;
} }
......
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