diff --git a/libavcodec/jvdec.c b/libavcodec/jvdec.c index 728b749896..acf1885611 100644 --- a/libavcodec/jvdec.c +++ b/libavcodec/jvdec.c @@ -174,8 +174,8 @@ static int decode_frame(AVCodecContext *avctx, } } - if (buf < buf_end) { - for (i = 0; i < AVPALETTE_COUNT && buf + 3 <= buf_end; i++) { + if (buf_end - buf >= AVPALETTE_COUNT * 3) { + for (i = 0; i < AVPALETTE_COUNT; i++) { uint32_t pal = AV_RB24(buf); s->palette[i] = 0xFF << 24 | pal << 2 | ((pal >> 4) & 0x30303); buf += 3;