Commit 60ab4480 authored by Michael Niedermayer's avatar Michael Niedermayer

ape_decode_value_3860: check k before using it in get_bits()

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 89372307
...@@ -489,9 +489,12 @@ static inline int ape_decode_value_3860(APEContext *ctx, GetBitContext *gb, ...@@ -489,9 +489,12 @@ static inline int ape_decode_value_3860(APEContext *ctx, GetBitContext *gb,
if (!rice->k) if (!rice->k)
x = overflow; x = overflow;
else else if(rice->k <= MIN_CACHE_BITS) {
x = (overflow << rice->k) + get_bits(gb, rice->k); x = (overflow << rice->k) + get_bits(gb, rice->k);
} else {
av_log(ctx->avctx, AV_LOG_ERROR, "Too many bits: %d\n", rice->k);
return AVERROR_INVALIDDATA;
}
rice->ksum += x - (rice->ksum + 8 >> 4); rice->ksum += x - (rice->ksum + 8 >> 4);
if (rice->ksum < (rice->k ? 1 << (rice->k + 4) : 0)) if (rice->ksum < (rice->k ? 1 << (rice->k + 4) : 0))
rice->k--; rice->k--;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment