diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2024-04-01 22:11:54 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2024-04-03 00:44:38 +0200 |
commit | 1887ff250cfd1e69c08bca21cc53e30a39e26818 (patch) | |
tree | f2dcb3606b688bb061d33fb19c4bdabb327a1b5d /libavcodec | |
parent | d58037c18e540b824af49baf3e384f59176b7869 (diff) | |
download | ffmpeg-1887ff250cfd1e69c08bca21cc53e30a39e26818.tar.gz |
avcodec/apedec: Use NABS to avoid undefined negation
Fixes: negation of -2147483648 cannot be represented in type 'int32_t' (aka 'int'); cast to an unsigned type to negate this value to itself
Fixes: 67738/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_APE_fuzzer-5444313212321792
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/apedec.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c index 86b79182a7..d75a85f466 100644 --- a/libavcodec/apedec.c +++ b/libavcodec/apedec.c @@ -1287,7 +1287,7 @@ static void predictor_decode_stereo_3950(APEContext *ctx, int count) int32_t left = a1 - (unsigned)(a0 / 2); int32_t right = left + (unsigned)a0; - if (FFMAX(FFABS(left), FFABS(right)) > (1<<23)) { + if (FFMIN(FFNABS(left), FFNABS(right)) < -(1<<23)) { ctx->interim_mode = !interim_mode; av_log(ctx->avctx, AV_LOG_VERBOSE, "Interim mode: %d\n", ctx->interim_mode); break; |