Ensure that the filter limit values do not exceed the maximum allowed value of 127.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 5 Jul 2009 18:27:39 +0000 (18:27 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 5 Jul 2009 18:27:39 +0000 (18:27 +0000)
Originally committed as revision 19351 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vp3.c

index 66ac2f9..ad32cc9 100644 (file)
@@ -2171,8 +2171,13 @@ static int theora_decode_tables(AVCodecContext *avctx, GetBitContext *gb)
     if (s->theora >= 0x030200) {
         n = get_bits(gb, 3);
         /* loop filter limit values table */
-        for (i = 0; i < 64; i++)
+        for (i = 0; i < 64; i++) {
             s->filter_limit_values[i] = get_bits(gb, n);
+            if (s->filter_limit_values[i] > 127) {
+                av_log(avctx, AV_LOG_ERROR, "filter limit value too large (%i > 127), clamping\n", s->filter_limit_values[i]);
+                s->filter_limit_values[i] = 127;
+            }
+        }
     }
 
     if (s->theora >= 0x030200)