twinvq: check bitrate for validity avoid division by 0
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 9 Nov 2012 17:45:41 +0000 (18:45 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 9 Nov 2012 17:46:17 +0000 (18:46 +0100)
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/twinvq.c

index f4eba4d..7281d9c 100644 (file)
@@ -1142,6 +1142,11 @@ static av_cold int twin_decode_init(AVCodecContext *avctx)
 
     ibps = avctx->bit_rate / (1000 * avctx->channels);
 
+    if (ibps > 255) {
+        av_log(avctx, AV_LOG_ERROR, "unsupported per channel bitrate %dkbps\n", ibps);
+        return AVERROR_INVALIDDATA;
+    }
+
     switch ((isampf << 8) +  ibps) {
     case (8 <<8) +  8: tctx->mtab = &mode_08_08; break;
     case (11<<8) +  8: tctx->mtab = &mode_11_08; break;