mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/aic: Fix vlc value checks
Fixes out of array accesses Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
30df9789a9
commit
657875b145
@ -201,7 +201,8 @@ static int aic_decode_coeffs(GetBitContext *gb, int16_t *dst,
|
|||||||
int has_skips, coeff_type, coeff_bits, skip_type, skip_bits;
|
int has_skips, coeff_type, coeff_bits, skip_type, skip_bits;
|
||||||
const int num_coeffs = aic_num_band_coeffs[band];
|
const int num_coeffs = aic_num_band_coeffs[band];
|
||||||
const uint8_t *scan = aic_scan[band];
|
const uint8_t *scan = aic_scan[band];
|
||||||
int mb, idx, val;
|
int mb, idx;
|
||||||
|
unsigned val;
|
||||||
|
|
||||||
has_skips = get_bits1(gb);
|
has_skips = get_bits1(gb);
|
||||||
coeff_type = get_bits1(gb);
|
coeff_type = get_bits1(gb);
|
||||||
@ -215,6 +216,8 @@ static int aic_decode_coeffs(GetBitContext *gb, int16_t *dst,
|
|||||||
idx = -1;
|
idx = -1;
|
||||||
do {
|
do {
|
||||||
GET_CODE(val, skip_type, skip_bits);
|
GET_CODE(val, skip_type, skip_bits);
|
||||||
|
if (val >= 0x10000)
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
idx += val + 1;
|
idx += val + 1;
|
||||||
if (idx >= num_coeffs)
|
if (idx >= num_coeffs)
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user