PR #23659 opened by michaelni URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23659 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23659.patch
Fixes: out of array access Fixes: heaNtmHvklpe Fixes: 92396cee602320c714713ca2d93b53684ad57000 (avformat: add CRI AAX demuxer) Found-by: Pavel Kohout (Aisle Research) Signed-off-by: Michael Niedermayer <[email protected]> >From 7b6a62eb725b76ef8feb3a862ca3285d2555261b Mon Sep 17 00:00:00 2001 From: Pavel Kohout <[email protected]> Date: Mon, 29 Jun 2026 23:46:16 +0200 Subject: [PATCH] avcodec/adx: sync decoder channel state on NEW_EXTRADATA Fixes: out of array access Fixes: heaNtmHvklpe Fixes: 92396cee602320c714713ca2d93b53684ad57000 (avformat: add CRI AAX demuxer) Found-by: Pavel Kohout (Aisle Research) Signed-off-by: Michael Niedermayer <[email protected]> --- libavcodec/adxdec.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c index 019fc1a90d..a79ae430aa 100644 --- a/libavcodec/adxdec.c +++ b/libavcodec/adxdec.c @@ -173,6 +173,7 @@ static int adx_decode_frame(AVCodecContext *avctx, AVFrame *frame, new_extradata = av_packet_get_side_data(avpkt, AV_PKT_DATA_NEW_EXTRADATA, &new_extradata_size); if (new_extradata && new_extradata_size > 0) { + int old_channels = c->channels; int header_size; if ((ret = adx_decode_header(avctx, new_extradata, new_extradata_size, &header_size, @@ -181,6 +182,10 @@ static int adx_decode_frame(AVCodecContext *avctx, AVFrame *frame, return AVERROR_INVALIDDATA; } + c->channels = avctx->ch_layout.nb_channels; + c->header_parsed = 1; + if (old_channels != c->channels) + memset(c->prev, 0, sizeof(c->prev)); c->eof = 0; } -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
