Fix potential invalid memory access for concealment in decodeEnvelope()

Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc

Change-Id: I916a24c000ef792aa3d5befa02a6b6f673161844
This commit is contained in:
Fraunhofer IIS FDK 2018-10-19 16:42:30 +02:00 committed by Jean-Michel Trivi
parent 5cb1030d72
commit 82383e3212
1 changed files with 9 additions and 4 deletions

View File

@ -506,15 +506,20 @@ static void decodeEnvelope(
*/
for (i = 0; i < hHeaderData->freqBandData.nSfb[1]; i++) {
/* Former Level-Channel will be used for both channels */
if (h_prev_data->coupling == COUPLING_BAL)
h_prev_data->sfb_nrg_prev[i] = otherChannel->sfb_nrg_prev[i];
if (h_prev_data->coupling == COUPLING_BAL) {
h_prev_data->sfb_nrg_prev[i] =
(otherChannel != NULL) ? otherChannel->sfb_nrg_prev[i]
: (FIXP_SGL)SBR_ENERGY_PAN_OFFSET;
}
/* Former L/R will be combined as the new Level-Channel */
else if (h_sbr_data->coupling == COUPLING_LEVEL)
else if (h_sbr_data->coupling == COUPLING_LEVEL &&
otherChannel != NULL) {
h_prev_data->sfb_nrg_prev[i] = (h_prev_data->sfb_nrg_prev[i] +
otherChannel->sfb_nrg_prev[i]) >>
1;
else if (h_sbr_data->coupling == COUPLING_BAL)
} else if (h_sbr_data->coupling == COUPLING_BAL) {
h_prev_data->sfb_nrg_prev[i] = (FIXP_SGL)SBR_ENERGY_PAN_OFFSET;
}
}
}
}