[FFmpeg-cvslog] lavc/zmbvenc: Do not left-shift negative values.

Carl Eugen Hoyos git at videolan.org
Mon Aug 12 00:43:57 EEST 2019


ffmpeg | branch: master | Carl Eugen Hoyos <ceffmpeg at gmail.com> | Mon Jul  1 01:45:36 2019 +0200| [ea56af88956061d700043c5c4b026ac57834b0c8] | committer: Carl Eugen Hoyos

lavc/zmbvenc: Do not left-shift negative values.

Fixes the following ubsan errors with the sample from ticket #7980:
libavcodec/zmbvenc.c:243:29: runtime error: left shift of negative value -4
libavcodec/zmbvenc.c:244:28: runtime error: left shift of negative value -2

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

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

diff --git a/libavcodec/zmbvenc.c b/libavcodec/zmbvenc.c
index 48871758e0..0e22ce687f 100644
--- a/libavcodec/zmbvenc.c
+++ b/libavcodec/zmbvenc.c
@@ -240,8 +240,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
                 tprev = prev + x * c->bypp;
 
                 zmbv_me(c, tsrc, p->linesize[0], tprev, c->pstride, x, y, &mx, &my, &xored);
-                mv[0] = (mx << 1) | !!xored;
-                mv[1] = my << 1;
+                mv[0] = (mx * 2) | !!xored;
+                mv[1] = my * 2;
                 tprev += mx * c->bypp + my * c->pstride;
                 if(xored){
                     for(j = 0; j < bh2; j++){



More information about the ffmpeg-cvslog mailing list