mirror of https://github.com/mstorsjo/fdk-aac.git
Prevent integer overflow in sbrDecoder_calculateGainVec().
Bug: 131430997 Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc Change-Id: I359f7f976a5ad5459be7d7b786145988a175e305
This commit is contained in:
parent
2152ae1a5e
commit
a7029823f4
|
@ -1,7 +1,7 @@
|
|||
/* -----------------------------------------------------------------------------
|
||||
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
||||
|
||||
© Copyright 1995 - 2018 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
||||
© Copyright 1995 - 2019 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
||||
Forschung e.V. All rights reserved.
|
||||
|
||||
1. INTRODUCTION
|
||||
|
@ -904,23 +904,24 @@ void sbrDecoder_calculateGainVec(FIXP_DBL **sourceBufferReal,
|
|||
}
|
||||
|
||||
if (maxVal != FL2FX_DBL(0.0f)) {
|
||||
reserve = fixMax(0, CntLeadingZeros(maxVal) - 2);
|
||||
reserve = CntLeadingZeros(maxVal) - 2;
|
||||
}
|
||||
|
||||
nrg_ov = nrg = (FIXP_DBL)0;
|
||||
if (scale_nrg_ov > -31) {
|
||||
for (i = startSample; i < overlap; i++) {
|
||||
nrg_ov += (fPow2Div2(sourceBufferReal[i][loBand] << reserve) +
|
||||
fPow2Div2(sourceBufferImag[i][loBand] << reserve)) >>
|
||||
sum_scale_ov;
|
||||
nrg_ov +=
|
||||
(fPow2Div2(scaleValue(sourceBufferReal[i][loBand], reserve)) +
|
||||
fPow2Div2(scaleValue(sourceBufferImag[i][loBand], reserve))) >>
|
||||
sum_scale_ov;
|
||||
}
|
||||
} else {
|
||||
scale_nrg_ov = 0;
|
||||
}
|
||||
if (scale_nrg > -31) {
|
||||
for (i = overlap; i < stopSample; i++) {
|
||||
nrg += (fPow2Div2(sourceBufferReal[i][loBand] << reserve) +
|
||||
fPow2Div2(sourceBufferImag[i][loBand] << reserve)) >>
|
||||
nrg += (fPow2Div2(scaleValue(sourceBufferReal[i][loBand], reserve)) +
|
||||
fPow2Div2(scaleValue(sourceBufferImag[i][loBand], reserve))) >>
|
||||
sum_scale;
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue