From 5260edee7e5bd975837696c8c8c1a80eb2fbd7c1 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 12 Feb 2013 02:03:28 +0100 Subject: sanm: Use the correct height variable in the decoded_size checks Fixes integer overflow and out of array accesses Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer --- libavcodec/sanm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libavcodec/sanm.c') diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c index 500c01f37c..caeaa366a6 100644 --- a/libavcodec/sanm.c +++ b/libavcodec/sanm.c @@ -420,8 +420,8 @@ static int old_codec37(SANMVideoContext *ctx, int top, flags = bytestream2_get_byte(&ctx->gb); bytestream2_skip(&ctx->gb, 3); - if (decoded_size > height * stride - left - top * stride) { - decoded_size = height * stride - left - top * stride; + if (decoded_size > ctx->height * stride - left - top * stride) { + decoded_size = ctx->height * stride - left - top * stride; av_log(ctx->avctx, AV_LOG_WARNING, "decoded size is too large\n"); } @@ -658,8 +658,8 @@ static int old_codec47(SANMVideoContext *ctx, int top, decoded_size = bytestream2_get_le32(&ctx->gb); bytestream2_skip(&ctx->gb, 8); - if (decoded_size > height * stride - left - top * stride) { - decoded_size = height * stride - left - top * stride; + if (decoded_size > ctx->height * stride - left - top * stride) { + decoded_size = ctx->height * stride - left - top * stride; av_log(ctx->avctx, AV_LOG_WARNING, "decoded size is too large\n"); } -- cgit v1.2.3