Browse Source

alsdec: Check k used for rice decoder.

Values that fail this check will cause failure of decode_rice()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
(cherry picked from commit 23aae62c2c)

Signed-off-by: Reinhard Tartler <siretart@tauware.de>
tags/n0.8.13
Michael Niedermayer Reinhard Tartler 14 years ago
parent
commit
aa45b90804
1 changed files with 5 additions and 0 deletions
  1. +5
    -0
      libavcodec/alsdec.c

+ 5
- 0
libavcodec/alsdec.c View File

@@ -650,6 +650,11 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd)
for (k = 1; k < sub_blocks; k++) for (k = 1; k < sub_blocks; k++)
s[k] = s[k - 1] + decode_rice(gb, 0); s[k] = s[k - 1] + decode_rice(gb, 0);
} }
for (k = 1; k < sub_blocks; k++)
if (s[k] > 32) {
av_log(avctx, AV_LOG_ERROR, "k invalid for rice code.\n");
return AVERROR_INVALIDDATA;
}


if (get_bits1(gb)) if (get_bits1(gb))
*bd->shift_lsbs = get_bits(gb, 4) + 1; *bd->shift_lsbs = get_bits(gb, 4) + 1;


Loading…
Cancel
Save