avcodec/alsdec: Fixes signed integer overflow in LSB addition
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 20 Jun 2019 22:47:16 +0000 (00:47 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sat, 6 Jul 2019 20:50:21 +0000 (22:50 +0200)
Fixes: signed integer overflow: 8 * 536870912 cannot be represented in type 'int'
Fixes: 15281/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ALS_fuzzer-5744458785619968

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

index 96cfbbf..4b69775 100644 (file)
@@ -867,7 +867,7 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd)
                     res >>= 1;
 
                     if (cur_k) {
-                        res  *= 1 << cur_k;
+                        res  *= 1U << cur_k;
                         res  |= get_bits_long(gb, cur_k);
                     }
                 }