diff options
author | Andreas Cadhalpun <andreas.cadhalpun@googlemail.com> | 2015-05-12 20:27:21 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-05-21 20:43:38 +0200 |
commit | 7d45230d812171da3976d9360a2d273e4027b5d6 (patch) | |
tree | 94cb858ca913edaadd8cbea070d38fc9cf08698f /libavcodec | |
parent | 254e3af60f7e56b9c9ba870c1ea55066e3508f78 (diff) | |
download | ffmpeg-7d45230d812171da3976d9360a2d273e4027b5d6.tar.gz |
aacdec: don't return frames without data
Since commit 676a395a aac->frame->data is not necessarily allocated at
the end of aac_decode_frame_int if avctx->channels is 0.
In this case a bogus frame without any data, but non-zero nb_samples is
returned.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ec38a1ba404b8cb8d71ccee2b8dcd6f3fcbde273)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/aacdec.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index 1aa1a80675..61efc2579b 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -3059,6 +3059,12 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data, AV_WL32(side, 2*AV_RL32(side)); } + if (!ac->frame->data[0] && samples) { + av_log(avctx, AV_LOG_ERROR, "no frame data found\n"); + err = AVERROR_INVALIDDATA; + goto fail; + } + *got_frame_ptr = !!samples; if (samples) { ac->frame->nb_samples = samples; |