[SCM] libav/experimental: prevent access to vp8_coeff_band[16]

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:13:20 UTC 2013


The following commit has been merged in the experimental branch:
commit c22b4468a6e87ccaf1630d83f12f6817f9e7eff7
Author: Pascal Massimino <pascal.massimino at gmail.com>
Date:   Sun Aug 1 23:20:06 2010 +0000

    prevent access to vp8_coeff_band[16]
    
    Originally committed as revision 24656 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c
index 1136f38..c82c36b 100644
--- a/libavcodec/vp8.c
+++ b/libavcodec/vp8.c
@@ -822,11 +822,11 @@ static int decode_block_coeffs(VP56RangeCoder *c, DCTELEM block[16],
 
 skip_eob:
         if (!vp56_rac_get_prob_branchy(c, token_prob[1])) { // DCT_0
+            if (++i == 16)
+                return nonzero; // invalid input; blocks should end with EOB
             zero_nhood = 0;
-            token_prob = probs[vp8_coeff_band[++i]][0];
-            if (i < 16)
-                goto skip_eob;
-            return nonzero; // invalid input; blocks should end with EOB
+            token_prob = probs[vp8_coeff_band[i]][0];
+            goto skip_eob;
         }
 
         if (!vp56_rac_get_prob_branchy(c, token_prob[2])) { // DCT_1

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list