mirror of
https://github.com/mstorsjo/fdk-aac.git
synced 2025-06-05 22:39:13 +02:00
Perform parameter check before parameter assignment to avoid incorrect initialization in resetFreqBandTables().
Bug: 186777497 Test: atest android.media.cts.DecoderTestAacFormat android.media.cts.DecoderTestXheAac android.media.cts.DecoderTestAacDrc Change-Id: I5af625905b1e4365fa84423d186c227a49707f72
This commit is contained in:
committed by
Jean-Michel Trivi
parent
e15d049ded
commit
cab99f4b6a
@@ -1,7 +1,7 @@
|
|||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
Software License for The Fraunhofer FDK AAC Codec Library for Android
|
||||||
|
|
||||||
© Copyright 1995 - 2019 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
© Copyright 1995 - 2021 Fraunhofer-Gesellschaft zur Förderung der angewandten
|
||||||
Forschung e.V. All rights reserved.
|
Forschung e.V. All rights reserved.
|
||||||
|
|
||||||
1. INTRODUCTION
|
1. INTRODUCTION
|
||||||
@@ -765,9 +765,6 @@ resetFreqBandTables(HANDLE_SBR_HEADER_DATA hHeaderData, const UINT flags) {
|
|||||||
sbrdecUpdateLoRes(hFreq->freqBandTable[0], &nBandsLo, hFreq->freqBandTable[1],
|
sbrdecUpdateLoRes(hFreq->freqBandTable[0], &nBandsLo, hFreq->freqBandTable[1],
|
||||||
nBandsHi);
|
nBandsHi);
|
||||||
|
|
||||||
hFreq->nSfb[0] = nBandsLo;
|
|
||||||
hFreq->nSfb[1] = nBandsHi;
|
|
||||||
|
|
||||||
/* Check index to freqBandTable[0] */
|
/* Check index to freqBandTable[0] */
|
||||||
if (!(nBandsLo > 0) ||
|
if (!(nBandsLo > 0) ||
|
||||||
(nBandsLo > (((hHeaderData->numberOfAnalysisBands == 16)
|
(nBandsLo > (((hHeaderData->numberOfAnalysisBands == 16)
|
||||||
@@ -777,6 +774,9 @@ resetFreqBandTables(HANDLE_SBR_HEADER_DATA hHeaderData, const UINT flags) {
|
|||||||
return SBRDEC_UNSUPPORTED_CONFIG;
|
return SBRDEC_UNSUPPORTED_CONFIG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hFreq->nSfb[0] = nBandsLo;
|
||||||
|
hFreq->nSfb[1] = nBandsHi;
|
||||||
|
|
||||||
lsb = hFreq->freqBandTable[0][0];
|
lsb = hFreq->freqBandTable[0][0];
|
||||||
usb = hFreq->freqBandTable[0][nBandsLo];
|
usb = hFreq->freqBandTable[0][nBandsLo];
|
||||||
|
|
||||||
@@ -814,15 +814,15 @@ resetFreqBandTables(HANDLE_SBR_HEADER_DATA hHeaderData, const UINT flags) {
|
|||||||
|
|
||||||
if (intTemp == 0) intTemp = 1;
|
if (intTemp == 0) intTemp = 1;
|
||||||
|
|
||||||
|
if (intTemp > MAX_NOISE_COEFFS) {
|
||||||
|
return SBRDEC_UNSUPPORTED_CONFIG;
|
||||||
|
}
|
||||||
|
|
||||||
hFreq->nNfb = intTemp;
|
hFreq->nNfb = intTemp;
|
||||||
}
|
}
|
||||||
|
|
||||||
hFreq->nInvfBands = hFreq->nNfb;
|
hFreq->nInvfBands = hFreq->nNfb;
|
||||||
|
|
||||||
if (hFreq->nNfb > MAX_NOISE_COEFFS) {
|
|
||||||
return SBRDEC_UNSUPPORTED_CONFIG;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Get noise bands */
|
/* Get noise bands */
|
||||||
sbrdecDownSampleLoRes(hFreq->freqBandTableNoise, hFreq->nNfb,
|
sbrdecDownSampleLoRes(hFreq->freqBandTableNoise, hFreq->nNfb,
|
||||||
hFreq->freqBandTable[0], nBandsLo);
|
hFreq->freqBandTable[0], nBandsLo);
|
||||||
|
Reference in New Issue
Block a user