mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-14 02:50:11 +01:00
avcodec/adpcm: Fix left shifts in AV_CODEC_ID_ADPCM_EA
Fixes: left shift of negative value -1
Fixes: 17683/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ADPCM_EA_R2_fuzzer-5111690013704192
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 8695fbec57)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
@@ -1287,10 +1287,10 @@ static int adpcm_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
|
|
||||||
for (count2=0; count2<28; count2++) {
|
for (count2=0; count2<28; count2++) {
|
||||||
if (count2 & 1)
|
if (count2 & 1)
|
||||||
next_sample = sign_extend(byte, 4) << shift;
|
next_sample = (unsigned)sign_extend(byte, 4) << shift;
|
||||||
else {
|
else {
|
||||||
byte = bytestream2_get_byte(&gb);
|
byte = bytestream2_get_byte(&gb);
|
||||||
next_sample = sign_extend(byte >> 4, 4) << shift;
|
next_sample = (unsigned)sign_extend(byte >> 4, 4) << shift;
|
||||||
}
|
}
|
||||||
|
|
||||||
next_sample += (current_sample * coeff1) +
|
next_sample += (current_sample * coeff1) +
|
||||||
|
|||||||
Reference in New Issue
Block a user