From f7f892e4d5bded48b08e7b776a5fb7c350496f2b Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Sat, 26 Nov 2011 16:50:51 +0000 Subject: [PATCH] svq1enc: fix signed multiplication overflow This multiplication can overflow the signed range but not the unsigned. After right-shifting it will thus fit in the signed range again. Signed-off-by: Mans Rullgard --- libavcodec/svq1enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index 79aaa6cb26..01d8b315b8 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -160,7 +160,7 @@ static int encode_block(SVQ1Context *s, uint8_t *src, uint8_t *ref, uint8_t *dec } best_count=0; - best_score -= ((block_sum[0]*block_sum[0])>>(level+3)); + best_score -= (int)(((unsigned)block_sum[0]*block_sum[0])>>(level+3)); best_mean= (block_sum[0] + (size>>1)) >> (level+3); if(level<4){