mirror of https://github.com/mstorsjo/fdk-aac.git
Fix potential invalid memory access for concealment in decodeEnvelope()
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc Change-Id: I916a24c000ef792aa3d5befa02a6b6f673161844
This commit is contained in:
parent
5cb1030d72
commit
82383e3212
|
@ -506,18 +506,23 @@ static void decodeEnvelope(
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < hHeaderData->freqBandData.nSfb[1]; i++) {
|
for (i = 0; i < hHeaderData->freqBandData.nSfb[1]; i++) {
|
||||||
/* Former Level-Channel will be used for both channels */
|
/* Former Level-Channel will be used for both channels */
|
||||||
if (h_prev_data->coupling == COUPLING_BAL)
|
if (h_prev_data->coupling == COUPLING_BAL) {
|
||||||
h_prev_data->sfb_nrg_prev[i] = otherChannel->sfb_nrg_prev[i];
|
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 */
|
/* 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] +
|
h_prev_data->sfb_nrg_prev[i] = (h_prev_data->sfb_nrg_prev[i] +
|
||||||
otherChannel->sfb_nrg_prev[i]) >>
|
otherChannel->sfb_nrg_prev[i]) >>
|
||||||
1;
|
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;
|
h_prev_data->sfb_nrg_prev[i] = (FIXP_SGL)SBR_ENERGY_PAN_OFFSET;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
FDKmemcpy(tempSfbNrgPrev, h_prev_data->sfb_nrg_prev,
|
FDKmemcpy(tempSfbNrgPrev, h_prev_data->sfb_nrg_prev,
|
||||||
MAX_FREQ_COEFFS * sizeof(FIXP_SGL));
|
MAX_FREQ_COEFFS * sizeof(FIXP_SGL));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue