mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/eac3dec: Fix runtime error: left shift of negative value
Fixes: 610/clusterfuzz-testcase-4831030085156864 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
67fa02ed79
commit
067485b673
|
@ -252,7 +252,7 @@ static void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch)
|
||||||
/* Vector Quantization */
|
/* Vector Quantization */
|
||||||
int v = get_bits(gbc, bits);
|
int v = get_bits(gbc, bits);
|
||||||
for (blk = 0; blk < 6; blk++) {
|
for (blk = 0; blk < 6; blk++) {
|
||||||
s->pre_mantissa[ch][bin][blk] = ff_eac3_mantissa_vq[hebap][v][blk] << 8;
|
s->pre_mantissa[ch][bin][blk] = ff_eac3_mantissa_vq[hebap][v][blk] * (1 << 8);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* Gain Adaptive Quantization */
|
/* Gain Adaptive Quantization */
|
||||||
|
@ -271,12 +271,12 @@ static void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch)
|
||||||
int b;
|
int b;
|
||||||
int mbits = bits - (2 - log_gain);
|
int mbits = bits - (2 - log_gain);
|
||||||
mant = get_sbits(gbc, mbits);
|
mant = get_sbits(gbc, mbits);
|
||||||
mant <<= (23 - (mbits - 1));
|
mant = ((unsigned)mant) << (23 - (mbits - 1));
|
||||||
/* remap mantissa value to correct for asymmetric quantization */
|
/* remap mantissa value to correct for asymmetric quantization */
|
||||||
if (mant >= 0)
|
if (mant >= 0)
|
||||||
b = 1 << (23 - log_gain);
|
b = 1 << (23 - log_gain);
|
||||||
else
|
else
|
||||||
b = ff_eac3_gaq_remap_2_4_b[hebap-8][log_gain-1] << 8;
|
b = ff_eac3_gaq_remap_2_4_b[hebap-8][log_gain-1] * (1 << 8);
|
||||||
mant += ((ff_eac3_gaq_remap_2_4_a[hebap-8][log_gain-1] * (int64_t)mant) >> 15) + b;
|
mant += ((ff_eac3_gaq_remap_2_4_a[hebap-8][log_gain-1] * (int64_t)mant) >> 15) + b;
|
||||||
} else {
|
} else {
|
||||||
/* small mantissa, no GAQ, or Gk=1 */
|
/* small mantissa, no GAQ, or Gk=1 */
|
||||||
|
|
Loading…
Reference in New Issue