aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2023-09-21 00:13:27 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2023-10-03 20:09:27 +0200
commitf3c986200d7f4ec934c480b09aa8a13554da032d (patch)
tree83b6d9728dfaa7ce87b19408dc5070f2b26c54c8
parentc42a89309ae5e5bf856a6a28f9294562a8b89c48 (diff)
downloadffmpeg-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.c4
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];
}
}
}