avcodec/truemotion1: Fix multiple runtime error: signed integer overflow: 1246906962...
authorMichael Niedermayer <michael@niedermayer.cc>
Tue, 16 May 2017 01:04:26 +0000 (03:04 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 16 May 2017 21:14:28 +0000 (23:14 +0200)
Fixes: 1616/clusterfuzz-testcase-minimized-5119196578971648

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/truemotion1.c

index 57694cb..e182438 100644 (file)
@@ -180,7 +180,7 @@ static int make_ydt15_entry(int p1, int p2, int16_t *ydt)
     lo += (lo * 32) + (lo * 1024);
     hi = ydt[p2];
     hi += (hi * 32) + (hi * 1024);
-    return (lo + (hi * (1 << 16))) * 2;
+    return (lo + (hi * (1U << 16))) * 2;
 }
 
 static int make_cdt15_entry(int p1, int p2, int16_t *cdt)
@@ -190,7 +190,7 @@ static int make_cdt15_entry(int p1, int p2, int16_t *cdt)
     b = cdt[p2];
     r = cdt[p1] * 1024;
     lo = b + r;
-    return (lo + (lo * (1 << 16))) * 2;
+    return (lo + (lo * (1U << 16))) * 2;
 }
 
 #if HAVE_BIGENDIAN