]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/takdsp: Fix negative shift in decorrelate_sf()
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 24 Sep 2020 19:59:04 +0000 (21:59 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Sat, 10 Oct 2020 11:08:24 +0000 (13:08 +0200)
Fixes: left shift of negative value -4
Fixes: 25723/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TAK_fuzzer-6250580752990208
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/takdsp.c

index 2441c2baa62cc502b09910ad7b8add0afe0b8dfa..9cb805259666bffa496045c25422f963d958279f 100644 (file)
@@ -65,7 +65,7 @@ static void decorrelate_sf(int32_t *p1, int32_t *p2, int length, int dshift, int
     for (i = 0; i < length; i++) {
         int32_t a = p1[i];
         int32_t b = p2[i];
-        b         = dfactor * (b >> dshift) + 128 >> 8 << dshift;
+        b         = (unsigned)(dfactor * (b >> dshift) + 128 >> 8) << dshift;
         p1[i]     = b - a;
     }
 }