From 8bd1f1a4c8e591e92e7f4933a89fe5de72e5563f Mon Sep 17 00:00:00 2001 From: Shitiz Garg Date: Sun, 11 Dec 2011 01:10:57 +0530 Subject: ttadec: check channel count as read from extradata. fixes floating-point exception due to channels being set to 0. fixes Bug 128. Signed-off-by: Justin Ruggles --- libavcodec/tta.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libavcodec/tta.c') diff --git a/libavcodec/tta.c b/libavcodec/tta.c index 6b76f527c4..c8d58fd9ec 100644 --- a/libavcodec/tta.c +++ b/libavcodec/tta.c @@ -221,6 +221,11 @@ static av_cold int tta_decode_init(AVCodecContext * avctx) s->data_length = get_bits_long(&s->gb, 32); skip_bits(&s->gb, 32); // CRC32 of header + if (s->channels == 0) { + av_log(s->avctx, AV_LOG_ERROR, "Invalid number of channels\n"); + return AVERROR_INVALIDDATA; + } + switch(s->bps) { case 2: avctx->sample_fmt = AV_SAMPLE_FMT_S16; -- cgit v1.2.3