]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/alsdec: Fix invalid shift in multiply()
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 20 Jun 2019 17:09:11 +0000 (19:09 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 26 Jun 2019 19:31:29 +0000 (21:31 +0200)
Fixes: shift exponent -24 is negative
Fixes: 15292/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ALS_fuzzer-5768533318828032
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 ca8701e6d0d856f04cbeff1239beec84f13bd43f..891f742e7eff565331f62bf9e554b21146db8a66 100644 (file)
@@ -1379,6 +1379,9 @@ static SoftFloat_IEEE754 multiply(SoftFloat_IEEE754 a, SoftFloat_IEEE754 b) {
     mantissa_temp = (uint64_t)a.mant * (uint64_t)b.mant;
     mask_64       = (uint64_t)0x1 << 47;
 
+    if (!mantissa_temp)
+        return FLOAT_0;
+
     // Count the valid bit count
     while (!(mantissa_temp & mask_64) && mask_64) {
         bit_count--;