From c756b3fca240df75ffa28e75f2eb34834c10294d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 11 Mar 2015 18:49:57 +0100 Subject: [PATCH] avcodec/h264dsp_template: Fix undefined shift in biweight_h264_pixels and weight_h264_pixels Found-by: Clang -fsanitize=shift Reported-by: Thierry Foucu Signed-off-by: Michael Niedermayer --- libavcodec/h264dsp_template.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/h264dsp_template.c b/libavcodec/h264dsp_template.c index 4d5faf01c0..4b42af7913 100644 --- a/libavcodec/h264dsp_template.c +++ b/libavcodec/h264dsp_template.c @@ -36,7 +36,7 @@ static void FUNCC(weight_h264_pixels ## W)(uint8_t *_block, int stride, int heig int y; \ pixel *block = (pixel*)_block; \ stride >>= sizeof(pixel)-1; \ - offset <<= (log2_denom + (BIT_DEPTH-8)); \ + offset = (unsigned)offset << (log2_denom + (BIT_DEPTH-8)); \ if(log2_denom) offset += 1<<(log2_denom-1); \ for (y = 0; y < height; y++, block += stride) { \ op_scale1(0); \ @@ -67,8 +67,8 @@ static void FUNCC(biweight_h264_pixels ## W)(uint8_t *_dst, uint8_t *_src, int s pixel *dst = (pixel*)_dst; \ pixel *src = (pixel*)_src; \ stride >>= sizeof(pixel)-1; \ - offset <<= (BIT_DEPTH-8); \ - offset = ((offset + 1) | 1) << log2_denom; \ + offset = (unsigned)offset << (BIT_DEPTH-8); \ + offset = (unsigned)((offset + 1) | 1) << log2_denom; \ for (y = 0; y < height; y++, dst += stride, src += stride) { \ op_scale2(0); \ op_scale2(1); \