[FFmpeg-cvslog] avcodec/rka: Avoid undefined left shift

Michael Niedermayer git at videolan.org
Sun Jun 18 15:29:57 EEST 2023


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Thu May 25 22:58:53 2023 +0200| [1ee303f1e1677fd997da05ae1cc6aca064f96bdb] | committer: Michael Niedermayer

avcodec/rka: Avoid undefined left shift

Fixes: left shift of 34136248 by 6 places cannot be represented in type 'int'
Fixes: 58429/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RKA_fuzzer-5692211592560640

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1ee303f1e1677fd997da05ae1cc6aca064f96bdb
---

 libavcodec/rka.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/rka.c b/libavcodec/rka.c
index e0ed8c16e4..76dca52602 100644
--- a/libavcodec/rka.c
+++ b/libavcodec/rka.c
@@ -750,7 +750,7 @@ static int decode_filter(RKAContext *s, ChContext *ctx, ACoder *ac, int off, uns
         }
         if (ctx->cmode2 != 0) {
             int sum = 0;
-            for (int i = (m << 6) / split; i > 0; i = i >> 1)
+            for (int i = (signed)((unsigned)m << 6) / split; i > 0; i = i >> 1)
                 sum++;
             sum = sum - (ctx->cmode2 + 7);
             ctx->cmode = FFMAX(sum, tab[ctx->cmode2]);



More information about the ffmpeg-cvslog mailing list