From: Michael Niedermayer Date: Tue, 14 Jan 2014 19:53:42 +0000 (+0100) Subject: avcodec/mpegaudiodec_template/mp3on4: check that all channels have been decoded befor... X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=2545182c294ff6b91ad36a575246788159e39f28;p=ffmpeg avcodec/mpegaudiodec_template/mp3on4: check that all channels have been decoded before returnig a frame Fixes use of uninitialized memory Fixes: msan_uninit-mem_7f80bf9a259e_5774_id5_1.mp4 Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer --- diff --git a/libavcodec/mpegaudiodec_template.c b/libavcodec/mpegaudiodec_template.c index be8ce6d56eb..f5031925ed1 100644 --- a/libavcodec/mpegaudiodec_template.c +++ b/libavcodec/mpegaudiodec_template.c @@ -1962,6 +1962,10 @@ static int decode_frame_mp3on4(AVCodecContext *avctx, void *data, avctx->bit_rate += m->bit_rate; } + if (ch != avctx->channels) { + av_log(avctx, AV_LOG_ERROR, "failed to decode all channels\n"); + return AVERROR_INVALIDDATA; + } /* update codec info */ avctx->sample_rate = s->mp3decctx[0]->sample_rate;