[FFmpeg-cvslog] swscale: Fix an undefined behaviour

Luca Barbato git at videolan.org
Mon May 5 00:09:37 CEST 2014


ffmpeg | branch: release/1.1 | Luca Barbato <lu_zero at gentoo.org> | Fri May  2 00:21:23 2014 +0200| [9a2387cfb1a99e4b00593c22074929cdc73410f0] | committer: Reinhard Tartler

swscale: Fix an undefined behaviour

Prevent a division by zero down the codepath.

Sample-Id: 00001721-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable at libav.org
(cherry picked from commit 3a177a9cca924e097265b32f9282814f6b653e08)
(cherry picked from commit 0499f7809c1fcc33ed710cdf771a18b374702135)

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

 libswscale/utils.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libswscale/utils.c b/libswscale/utils.c
index f0a2b46..23eb4a4 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -316,7 +316,7 @@ static int initFilter(int16_t **outFilter, int32_t **filterPos,
 
         xDstInSrc = xInc - 0x10000;
         for (i = 0; i < dstW; i++) {
-            int xx = (xDstInSrc - ((filterSize - 2) << 16)) / (1 << 17);
+            int xx = (xDstInSrc - ((int64_t)(filterSize - 2) << 16)) / (1 << 17);
             int j;
             (*filterPos)[i] = xx;
             for (j = 0; j < filterSize; j++) {



More information about the ffmpeg-cvslog mailing list