Fix js_vlc_bits value validation when joint stereo is used in cook decoder.
authorLaurent Aimar <fenrir@videolan.org>
Sat, 17 Sep 2011 14:56:35 +0000 (16:56 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 17 Sep 2011 15:44:56 +0000 (17:44 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/cook.c

index 6def1ac..0d09bb8 100644 (file)
@@ -1174,8 +1174,9 @@ static av_cold int cook_decode_init(AVCodecContext *avctx)
             return -1;
         }
 
-        if ((q->subpacket[s].js_vlc_bits > 6) || (q->subpacket[s].js_vlc_bits < 0)) {
-            av_log(avctx,AV_LOG_ERROR,"js_vlc_bits = %d, only >= 0 and <= 6 allowed!\n",q->subpacket[s].js_vlc_bits);
+        if ((q->subpacket[s].js_vlc_bits > 6) || (q->subpacket[s].js_vlc_bits < 2*q->subpacket[s].joint_stereo)) {
+            av_log(avctx,AV_LOG_ERROR,"js_vlc_bits = %d, only >= %d and <= 6 allowed!\n",
+                   q->subpacket[s].js_vlc_bits, 2*q->subpacket[s].joint_stereo);
             return -1;
         }