From 591d5281f5bccd2ee398ca46bf7de507be65036b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 17 Sep 2013 19:33:48 +0300 Subject: [PATCH] twinvqdec: Check the ibps parameter separately MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is required, since invalid parameters actually could pass the switch check below. Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö (cherry picked from commit c77d409bf95954aceb762dd800d1ee2868c4b0d4) (cherry picked from commit 9b9aee27f4e43b4a6b0884f8a6f49eb0289d7c09) --- libavcodec/twinvq.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/twinvq.c b/libavcodec/twinvq.c index 22be07a5b5..3006e9f108 100644 --- a/libavcodec/twinvq.c +++ b/libavcodec/twinvq.c @@ -1137,6 +1137,10 @@ static av_cold int twin_decode_init(AVCodecContext *avctx) return -1; } ibps = avctx->bit_rate / (1000 * avctx->channels); + if (ibps < 8 || ibps > 48) { + av_log(avctx, AV_LOG_ERROR, "Bad bitrate per channel value %d\n", ibps); + return AVERROR_INVALIDDATA; + } switch ((isampf << 8) + ibps) { case (8 <<8) + 8: tctx->mtab = &mode_08_08; break;