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:23:23 +0000 (15:23 +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>
(cherry picked from commit 6d499ecef9c2467772b6066176ffda0b7ab27cc2)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/aacdec_fixed.c

index f4503ca..a72c1e3 100644 (file)
@@ -388,7 +388,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);
                         }
                     }
                 }