Mercurial > libavcodec.hg
diff vp3.c @ 11453:4e1447ac5301 libavcodec
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.
author | conrad |
---|---|
date | Wed, 10 Mar 2010 00:59:32 +0000 |
parents | b1b2215cb7c7 |
children | 75b80079449f |
line wrap: on
line diff
--- a/vp3.c Tue Mar 09 23:37:45 2010 +0000 +++ b/vp3.c Wed Mar 10 00:59:32 2010 +0000 @@ -941,7 +941,7 @@ 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 */