avutil/common: Fix integer overflow in av_ceil_log2_c()
authorMichael Niedermayer <michael@niedermayer.cc>
Sat, 27 Jun 2020 22:21:09 +0000 (00:21 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 30 Jun 2020 18:35:23 +0000 (20:35 +0200)
Fixes: left shift of 1913647649 by 1 places cannot be represented in type 'int'
Fixes: 23572/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMALOSSLESS_fuzzer-5082619795734528

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

index 2777cea..92b721a 100644 (file)
@@ -371,7 +371,7 @@ static av_always_inline av_const double av_clipd_c(double a, double amin, double
  */
 static av_always_inline av_const int av_ceil_log2_c(int x)
 {
-    return av_log2((x - 1) << 1);
+    return av_log2((x - 1U) << 1);
 }
 
 /**