From 2545182c294ff6b91ad36a575246788159e39f28 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 14 Jan 2014 20:53:42 +0100 Subject: [PATCH] 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 --- libavcodec/mpegaudiodec_template.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/mpegaudiodec_template.c b/libavcodec/mpegaudiodec_template.c index be8ce6d56e..f5031925ed 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;