vp6: Fix illegal read.
authorAlex Converse <alex.converse@gmail.com>
Thu, 3 Nov 2011 22:55:52 +0000 (15:55 -0700)
committerAlex Converse <alex.converse@gmail.com>
Thu, 3 Nov 2011 23:40:34 +0000 (16:40 -0700)
libavcodec/vp6.c

index e29f901..03024fa 100644 (file)
@@ -376,7 +376,7 @@ static void vp6_parse_coeff_huffman(VP56Context *s)
         if (b > 3) pt = 1;
         vlc_coeff = &s->dccv_vlc[pt];
 
-        for (coeff_idx=0; coeff_idx<64; ) {
+        for (coeff_idx = 0;;) {
             int run = 1;
             if (coeff_idx<2 && s->nb_null[coeff_idx][pt]) {
                 s->nb_null[coeff_idx][pt]--;
@@ -413,6 +413,8 @@ static void vp6_parse_coeff_huffman(VP56Context *s)
                 }
             }
             coeff_idx+=run;
+            if (coeff_idx >= 64)
+                break;
             cg = FFMIN(vp6_coeff_groups[coeff_idx], 3);
             vlc_coeff = &s->ract_vlc[pt][ct][cg];
         }