From 89f146e6dbfc61a0a1d89361ce0f2d7dfbab77fb Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 1 Jul 2026 06:09:34 +0200 Subject: [PATCH] avcodec/jpeg2000dec: avoid signed overflow in ROI shift Fixes: 522402419/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_DEC_fuzzer-5987463315914752 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer (cherry picked from commit 90a285ca782ebe633ba40ab123b6ff0cde9085a8) Signed-off-by: Michael Niedermayer --- libavcodec/jpeg2000dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index c705f04c44..369377e4fc 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -2104,7 +2104,7 @@ static int decode_cblk(const Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *cod val &= INT32_MAX; /* ROI shift, if necessary */ if (roi_shift && (((uint32_t)val & ~mask) == 0)) - val <<= roi_shift; + val = (uint32_t)val << roi_shift; t1->data[n] = val | sign; /* NOTE: Binary point for reconstruction value is located in 31 - M_b */ } }