[FFmpeg-cvslog] avcodec/vc1_pred: Fix undefined shift in ff_vc1_pred_mv()

Michael Niedermayer git at videolan.org
Wed Mar 11 13:24:41 CET 2015


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Mar 11 13:16:47 2015 +0100| [e5dfa4361955803ac10911a005803c1e514b6ca7] | committer: Michael Niedermayer

avcodec/vc1_pred: Fix undefined shift in ff_vc1_pred_mv()

Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu at google.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e5dfa4361955803ac10911a005803c1e514b6ca7
---

 libavcodec/vc1_pred.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavcodec/vc1_pred.c b/libavcodec/vc1_pred.c
index f74992b..35c75ab 100644
--- a/libavcodec/vc1_pred.c
+++ b/libavcodec/vc1_pred.c
@@ -231,8 +231,10 @@ void ff_vc1_pred_mv(VC1Context *v, int n, int dmv_x, int dmv_y,
     else
         mixedmv_pic = 0;
     /* scale MV difference to be quad-pel */
-    dmv_x <<= 1 - s->quarter_sample;
-    dmv_y <<= 1 - s->quarter_sample;
+    if (!s->quarter_sample) {
+        dmv_x *= 2;
+        dmv_y *= 2;
+    }
 
     wrap = s->b8_stride;
     xy   = s->block_index[n];



More information about the ffmpeg-cvslog mailing list