From 53fd70579bc2314f2f5d528bed96914179b9a209 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 1 Jul 2015 15:43:50 +0200 Subject: [PATCH] avcodec/h264_mvpred: Fix undefined shifts in MAP_F2F Fixes: asan_heap-oob_17301a3_2100_cov_3226131691_ff_add_pixels_clamped_mmx.m2ts Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer --- libavcodec/h264_mvpred.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/h264_mvpred.h b/libavcodec/h264_mvpred.h index 57fa9b90ef..763746cc26 100644 --- a/libavcodec/h264_mvpred.h +++ b/libavcodec/h264_mvpred.h @@ -771,7 +771,7 @@ static void fill_decode_caches(const H264Context *h, H264SliceContext *sl, int m #define MAP_F2F(idx, mb_type) \ if (!IS_INTERLACED(mb_type) && sl->ref_cache[list][idx] >= 0) { \ - sl->ref_cache[list][idx] <<= 1; \ + sl->ref_cache[list][idx] *= 2; \ sl->mv_cache[list][idx][1] /= 2; \ sl->mvd_cache[list][idx][1] >>= 1; \ } @@ -783,7 +783,7 @@ static void fill_decode_caches(const H264Context *h, H264SliceContext *sl, int m #define MAP_F2F(idx, mb_type) \ if (IS_INTERLACED(mb_type) && sl->ref_cache[list][idx] >= 0) { \ sl->ref_cache[list][idx] >>= 1; \ - sl->mv_cache[list][idx][1] <<= 1; \ + sl->mv_cache[list][idx][1] *= 2; \ sl->mvd_cache[list][idx][1] <<= 1; \ }