swscale: Fix an undefined behaviour
authorLuca Barbato <lu_zero@gentoo.org>
Thu, 1 May 2014 22:21:23 +0000 (00:21 +0200)
committerReinhard Tartler <siretart@tauware.de>
Sun, 1 Jun 2014 00:07:52 +0000 (20:07 -0400)
Prevent a division by zero down the codepath.

Sample-Id: 00001721-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
libswscale/utils.c

index f3a5012..b4a7485 100644 (file)
@@ -269,7 +269,7 @@ static int initFilter(int16_t **outFilter, int32_t **filterPos, int *outFilterSi
 
         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++) {