snow: fix integer overflows

The way these values are used, they should have an unsigned type.
A similar change was made for mpegvideo in cb66847.

Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
Mans Rullgard 2011-11-26 20:59:17 +00:00
parent 0e55edcb57
commit 8540dcfd7a
2 changed files with 6 additions and 4 deletions

View File

@ -154,8 +154,8 @@ typedef struct SnowContext{
Plane plane[MAX_PLANES]; Plane plane[MAX_PLANES];
BlockNode *block; BlockNode *block;
#define ME_CACHE_SIZE 1024 #define ME_CACHE_SIZE 1024
int me_cache[ME_CACHE_SIZE]; unsigned me_cache[ME_CACHE_SIZE];
int me_cache_generation; unsigned me_cache_generation;
slice_buffer sb; slice_buffer sb;
int memc_only; int memc_only;

View File

@ -958,7 +958,8 @@ static av_always_inline int check_block(SnowContext *s, int mb_x, int mb_y, int
const int b_stride= s->b_width << s->block_max_depth; const int b_stride= s->b_width << s->block_max_depth;
BlockNode *block= &s->block[mb_x + mb_y * b_stride]; BlockNode *block= &s->block[mb_x + mb_y * b_stride];
BlockNode backup= *block; BlockNode backup= *block;
int rd, index, value; unsigned value;
int rd, index;
assert(mb_x>=0 && mb_y>=0); assert(mb_x>=0 && mb_y>=0);
assert(mb_x<b_stride); assert(mb_x<b_stride);
@ -1003,7 +1004,8 @@ static av_always_inline int check_4block_inter(SnowContext *s, int mb_x, int mb_
const int b_stride= s->b_width << s->block_max_depth; const int b_stride= s->b_width << s->block_max_depth;
BlockNode *block= &s->block[mb_x + mb_y * b_stride]; BlockNode *block= &s->block[mb_x + mb_y * b_stride];
BlockNode backup[4]= {block[0], block[1], block[b_stride], block[b_stride+1]}; BlockNode backup[4]= {block[0], block[1], block[b_stride], block[b_stride+1]};
int rd, index, value; unsigned value;
int rd, index;
assert(mb_x>=0 && mb_y>=0); assert(mb_x>=0 && mb_y>=0);
assert(mb_x<b_stride); assert(mb_x<b_stride);