[FFmpeg-cvslog] avcodec/mlpdsp: Fix a invalid shift in ff_mlp_rematrix_channel()

Michael Niedermayer git at videolan.org
Sun Feb 2 18:09:38 EET 2020


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Sat Feb  1 23:25:42 2020 +0100| [fcc9f13717c8c3fe08ca5caf957c39e76ea35e4f] | committer: Michael Niedermayer

avcodec/mlpdsp: Fix a invalid shift in ff_mlp_rematrix_channel()

Fixes: left shift of negative value -2
Fixes: 20305/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TRUEHD_fuzzer-5677196618498048

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Jai Luthra <me at jailuthra.in>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fcc9f13717c8c3fe08ca5caf957c39e76ea35e4f
---

 libavcodec/mlpdsp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/mlpdsp.c b/libavcodec/mlpdsp.c
index 32a4503b64..12bef3a721 100644
--- a/libavcodec/mlpdsp.c
+++ b/libavcodec/mlpdsp.c
@@ -79,7 +79,7 @@ void ff_mlp_rematrix_channel(int32_t *samples,
 
         if (matrix_noise_shift) {
             index &= access_unit_size_pow2 - 1;
-            accum += noise_buffer[index] << (matrix_noise_shift + 7);
+            accum += noise_buffer[index] * (1 << (matrix_noise_shift + 7));
             index += index2;
         }
 



More information about the ffmpeg-cvslog mailing list