1
0
mirror of https://github.com/mstorsjo/fdk-aac.git synced 2025-02-20 21:00:36 +01:00

[automerger] DO NOT MERGE Prevent out of bounds accesses in lppTransposer() am: 2eaadebcb6 am: 589e1e861f

Change-Id: I319554e07343c649f0ba37e719fbc144336b5e3e
This commit is contained in:
Android Build Merger (Role) 2018-10-11 23:10:00 +00:00
commit e2491a2024

View File

@ -96,6 +96,10 @@ amm-info@iis.fraunhofer.de
\sa lppTransposer(), main_audio.cpp, sbr_scale.h, \ref documentationOverview \sa lppTransposer(), main_audio.cpp, sbr_scale.h, \ref documentationOverview
*/ */
#ifdef __ANDROID__
#include <cutils/log.h>
#endif
#include "lpp_tran.h" #include "lpp_tran.h"
#include "sbr_ram.h" #include "sbr_ram.h"
@ -256,7 +260,6 @@ void lppTransposer (HANDLE_SBR_LPP_TRANS hLppTrans, /*!< Handle of lpp transp
int ovLowBandShift; int ovLowBandShift;
int lowBandShift; int lowBandShift;
/* int ovHighBandShift;*/ /* int ovHighBandShift;*/
int targetStopBand;
alphai[0] = FL2FXCONST_SGL(0.0f); alphai[0] = FL2FXCONST_SGL(0.0f);
@ -273,11 +276,12 @@ void lppTransposer (HANDLE_SBR_LPP_TRANS hLppTrans, /*!< Handle of lpp transp
autoCorrLength = pSettings->nCols + pSettings->overlap; autoCorrLength = pSettings->nCols + pSettings->overlap;
if (pSettings->noOfPatches > 0) {
/* Set upper subbands to zero: /* Set upper subbands to zero:
This is required in case that the patches do not cover the complete highband This is required in case that the patches do not cover the complete highband
(because the last patch would be too short). (because the last patch would be too short).
Possible optimization: Clearing bands up to usb would be sufficient here. */ Possible optimization: Clearing bands up to usb would be sufficient here. */
targetStopBand = patchParam[pSettings->noOfPatches-1].targetStartBand int targetStopBand = patchParam[pSettings->noOfPatches-1].targetStartBand
+ patchParam[pSettings->noOfPatches-1].numBandsInPatch; + patchParam[pSettings->noOfPatches-1].numBandsInPatch;
int memSize = ((64) - targetStopBand) * sizeof(FIXP_DBL); int memSize = ((64) - targetStopBand) * sizeof(FIXP_DBL);
@ -291,6 +295,13 @@ void lppTransposer (HANDLE_SBR_LPP_TRANS hLppTrans, /*!< Handle of lpp transp
for (i = startSample; i < stopSampleClear; i++) { for (i = startSample; i < stopSampleClear; i++) {
FDKmemclear(&qmfBufferReal[i][targetStopBand], memSize); FDKmemclear(&qmfBufferReal[i][targetStopBand], memSize);
} }
}
#ifdef __ANDROID__
else {
// Safetynet logging
android_errorWriteLog(0x534e4554, "112160868");
}
#endif
/* init bwIndex for each patch */ /* init bwIndex for each patch */
FDKmemclear(bwIndex, MAX_NUM_PATCHES*sizeof(INT)); FDKmemclear(bwIndex, MAX_NUM_PATCHES*sizeof(INT));