Module: libav Branch: release/11 Commit: 53313870918fdbbb85dfbce7b2e604908483f70c
Author: Anton Khirnov <an...@khirnov.net> Committer: Anton Khirnov <an...@khirnov.net> Date: Sun Aug 14 10:18:39 2016 +0200 alac: do not return success if nothing was decoded If we encounter an END element before anything is decoded, we would return success even though the output frame has not been allocated, which is invalid. CC: libav-sta...@libav.org Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind (cherry picked from commit 796dca027be09334d7bbf4f2ac1200e06bb054cb) Signed-off-by: Anton Khirnov <an...@khirnov.net> --- libavcodec/alac.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/alac.c b/libavcodec/alac.c index 5c792c4..0d25adc 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -447,6 +447,10 @@ static int alac_decode_frame(AVCodecContext *avctx, void *data, av_log(avctx, AV_LOG_ERROR, "no end tag found. incomplete packet.\n"); return AVERROR_INVALIDDATA; } + if (!alac->nb_samples) { + av_log(avctx, AV_LOG_ERROR, "No decodable data in the packet\n"); + return AVERROR_INVALIDDATA; + } if (avpkt->size * 8 - get_bits_count(&alac->gb) > 8) { av_log(avctx, AV_LOG_ERROR, "Error : %d bits left\n", _______________________________________________ libav-commits mailing list libav-commits@libav.org https://lists.libav.org/mailman/listinfo/libav-commits