summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/vp3.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index 66ac2f9a07..ad32cc9c1f 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -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)