From 803b1b706a8062744f915051d04488387c334bce Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Date: Thu, 17 Apr 2025 12:54:44 +0200 Subject: [PATCH 03/14] avcodec/magicyuvenc: Restrict number of slice-planes to 256 Every frame contains an array of uint8_t with values 0..(s->planes * s->nb_slices - 1), so this needs to fit into an uint8_t. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/magicyuvenc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/magicyuvenc.c b/libavcodec/magicyuvenc.c index a10da9684f..ba39bbb89f 100644 --- a/libavcodec/magicyuvenc.c +++ b/libavcodec/magicyuvenc.c @@ -206,6 +206,7 @@ static av_cold int magy_encode_init(AVCodecContext *avctx) s->nb_slices = FFMAX(1, s->nb_slices); s->slice_height = FFALIGN((avctx->height + s->nb_slices - 1) / s->nb_slices, 1 << s->vshift[1]); s->nb_slices = (avctx->height + s->slice_height - 1) / s->slice_height; + s->nb_slices = FFMIN(256U / s->planes, s->nb_slices); s->slices = av_calloc(s->nb_slices * s->planes, sizeof(*s->slices)); if (!s->slices) return AVERROR(ENOMEM); -- 2.45.2