aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-09-17 19:33:48 +0300
committerLuca Barbato <lu_zero@gentoo.org>2014-01-07 09:43:58 +0100
commit591d5281f5bccd2ee398ca46bf7de507be65036b (patch)
tree5ea62da3f10d7536c7b17e0806cfb82a89a4a4ae /libavcodec
parente972338e3596036d5d1f3ef214c465fa8a4a8504 (diff)
downloadffmpeg-591d5281f5bccd2ee398ca46bf7de507be65036b.tar.gz
twinvqdec: Check the ibps parameter separately
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ö <martin@martin.st> (cherry picked from commit c77d409bf95954aceb762dd800d1ee2868c4b0d4) (cherry picked from commit 9b9aee27f4e43b4a6b0884f8a6f49eb0289d7c09)
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/twinvq.c4
1 files changed, 4 insertions, 0 deletions
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;