avcodec/aacdec_fixed: Fix runtime error: left shift of negative value -1297616
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 11 Jun 2017 12:32:35 +0000 (14:32 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sun, 11 Jun 2017 13:22:07 +0000 (15:22 +0200)
Fixes: 2195/clusterfuzz-testcase-minimized-4736721533009920

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

index d8786df..5c10aa3 100644 (file)
@@ -389,7 +389,7 @@ static void apply_dependent_coupling_fixed(AACContext *ac,
                         for (k = offsets[i]; k < offsets[i + 1]; k++) {
                             tmp = (int)(((int64_t)src[group * 128 + k] * c + \
                                         (int64_t)0x1000000000) >> 37);
-                            dest[group * 128 + k] += tmp << shift;
+                            dest[group * 128 + k] += tmp * (1 << shift);
                         }
                     }
                 }