avcodec/mdec: Fix runtime error: left shift of negative value -127
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 27 Apr 2017 00:27:16 +0000 (02:27 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sat, 20 May 2017 01:41:33 +0000 (03:41 +0200)
Fixes undefined behavior
Fixes: 1275/clusterfuzz-testcase-minimized-6718162017976320

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6ca82975b7a8eaf676a52738ec8e7e36732327cc)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/mdec.c

index ee96614..17109d9 100644 (file)
@@ -74,7 +74,7 @@ static inline int mdec_decode_block_intra(MDECContext *a, int16_t *block, int n)
         if (diff >= 0xffff)
             return AVERROR_INVALIDDATA;
         a->last_dc[component] += diff;
-        block[0] = a->last_dc[component] << 3;
+        block[0] = a->last_dc[component] * (1 << 3);
     }
 
     i = 0;