Commit 6ba02602 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/vmnc: Check that rectangles are within the picture

Prevents out of array accesses with CODEC_FLAG_EMU_EDGE
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 7c6cf689
...@@ -291,6 +291,11 @@ static int decode_hextile(VmncContext *c, uint8_t* dst, GetByteContext *gb, ...@@ -291,6 +291,11 @@ static int decode_hextile(VmncContext *c, uint8_t* dst, GetByteContext *gb,
fg = vmnc_get_pixel(gb, bpp, c->bigendian); fg = vmnc_get_pixel(gb, bpp, c->bigendian);
xy = bytestream2_get_byte(gb); xy = bytestream2_get_byte(gb);
wh = bytestream2_get_byte(gb); wh = bytestream2_get_byte(gb);
if ( (xy >> 4) + (wh >> 4) + 1 > w - i
|| (xy & 0xF) + (wh & 0xF)+1 > h - j) {
av_log(c->avctx, AV_LOG_ERROR, "Rectangle outside picture\n");
return AVERROR_INVALIDDATA;
}
paint_rect(dst2, xy >> 4, xy & 0xF, paint_rect(dst2, xy >> 4, xy & 0xF,
(wh>>4)+1, (wh & 0xF)+1, fg, bpp, stride); (wh>>4)+1, (wh & 0xF)+1, fg, bpp, stride);
} }
......
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