diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2023-09-21 00:13:27 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2023-10-03 20:09:27 +0200 |
commit | f3c986200d7f4ec934c480b09aa8a13554da032d (patch) | |
tree | 83b6d9728dfaa7ce87b19408dc5070f2b26c54c8 | |
parent | c42a89309ae5e5bf856a6a28f9294562a8b89c48 (diff) | |
download | ffmpeg-f3c986200d7f4ec934c480b09aa8a13554da032d.tar.gz |
avcodec/wavarc: Fix integer overflwo in do_stereo()
Fixes: signed integer overflow: 148676193 - -2006512262 cannot be represented in type 'int'
Fixes: 62164/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WAVARC_fuzzer-5963163952349184
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavcodec/wavarc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/wavarc.c b/libavcodec/wavarc.c index 2e32b46ebd..6941ba9ab5 100644 --- a/libavcodec/wavarc.c +++ b/libavcodec/wavarc.c @@ -154,11 +154,11 @@ static void do_stereo(WavArcContext *s, int ch, int correlated, int len) } else { if (correlated) { for (int n = 0; n < nb_samples; n++) - s->samples[1][n + len] += s->samples[0][n + len]; + s->samples[1][n + len] += (unsigned)s->samples[0][n + len]; } for (int n = 0; n < len; n++) { s->pred[0][n] = s->samples[1][nb_samples + n]; - s->pred[1][n] = s->pred[0][n] - s->samples[0][nb_samples + n]; + s->pred[1][n] = s->pred[0][n] - (unsigned)s->samples[0][nb_samples + n]; } } } |