Message ID | 20191120222330.23504-1-michael@niedermayer.cc |
---|---|
State | Accepted |
Commit | 50db30b47d016fc4e7b47067545b15d22d4faddf |
Headers | show |
On Wed, Nov 20, 2019 at 11:23:27PM +0100, Michael Niedermayer wrote: > Fixes: left shift of negative value -1 > Fixes: 18859/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ADPCM_XA_fuzzer-5748474213040128 > > Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> > --- > libavcodec/adpcm.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) will apply patchset [...]
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c index edf7052636..73beb5050e 100644 --- a/libavcodec/adpcm.c +++ b/libavcodec/adpcm.c @@ -441,7 +441,7 @@ static int xa_decode(AVCodecContext *avctx, int16_t *out0, int16_t *out1, d = in[16+i+j*4]; t = sign_extend(d, 4); - s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6); + s = t*(1<<shift) + ((s_1*f0 + s_2*f1+32)>>6); s_2 = s_1; s_1 = av_clip_int16(s); out0[j] = s_1; @@ -468,7 +468,7 @@ static int xa_decode(AVCodecContext *avctx, int16_t *out0, int16_t *out1, d = in[16+i+j*4]; t = sign_extend(d >> 4, 4); - s = ( t<<shift ) + ((s_1*f0 + s_2*f1+32)>>6); + s = t*(1<<shift) + ((s_1*f0 + s_2*f1+32)>>6); s_2 = s_1; s_1 = av_clip_int16(s); out1[j] = s_1;
Fixes: left shift of negative value -1 Fixes: 18859/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ADPCM_XA_fuzzer-5748474213040128 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavcodec/adpcm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)