[SCM] libav/experimental: vp3: avoid buffer overread in coeff decode

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:03:58 UTC 2013


The following commit has been merged in the experimental branch:
commit f50dafa8fcefac0fc3a0e010eb444c1b5acaccc9
Author: David Conrad <lessen42 at gmail.com>
Date:   Wed Mar 10 00:59:32 2010 +0000

    vp3: avoid buffer overread in coeff decode
    
    I couldn't measure it to be slower for normal interframe videos.
    For the worst case, high-bitrate intra-only videos, it can be 0.7% slower.
    
    Originally committed as revision 22416 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index ff56be6..bcb7409 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -941,7 +941,7 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
     if (blocks_ended)
         dct_tokens[j++] = blocks_ended << 2;
 
-    while (coeff_i < num_coeffs) {
+    while (coeff_i < num_coeffs && get_bits_left(gb) > 0) {
             /* decode a VLC into a token */
             token = get_vlc2(gb, vlc_table, 5, 3);
             /* use the token to get a zero run, a coefficient, and an eob run */

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list