mirror of
https://github.com/mstorsjo/fdk-aac.git
synced 2025-06-05 22:39:13 +02:00
Avoid reading out of bounds due to too large aaIidIndexMapped
Fixes: 4151/clusterfuzz-testcase-4854089193095168 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
This commit is contained in:
@@ -938,7 +938,7 @@ void initSlotBasedRotation( HANDLE_PS_DEC h_ps_d, /*!< pointer to the module sta
|
|||||||
|
|
||||||
INT group = 0;
|
INT group = 0;
|
||||||
INT bin = 0;
|
INT bin = 0;
|
||||||
INT noIidSteps;
|
INT noIidSteps, noFactors;
|
||||||
|
|
||||||
/* const UCHAR *pQuantizedIIDs;*/
|
/* const UCHAR *pQuantizedIIDs;*/
|
||||||
|
|
||||||
@@ -984,6 +984,7 @@ void initSlotBasedRotation( HANDLE_PS_DEC h_ps_d, /*!< pointer to the module sta
|
|||||||
{
|
{
|
||||||
PScaleFactors = ScaleFactorsFine; /* values are shiftet right by one */
|
PScaleFactors = ScaleFactorsFine; /* values are shiftet right by one */
|
||||||
noIidSteps = NO_IID_STEPS_FINE;
|
noIidSteps = NO_IID_STEPS_FINE;
|
||||||
|
noFactors = NO_IID_LEVELS_FINE;
|
||||||
/*pQuantizedIIDs = quantizedIIDsFine;*/
|
/*pQuantizedIIDs = quantizedIIDsFine;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -991,6 +992,7 @@ void initSlotBasedRotation( HANDLE_PS_DEC h_ps_d, /*!< pointer to the module sta
|
|||||||
{
|
{
|
||||||
PScaleFactors = ScaleFactors; /* values are shiftet right by one */
|
PScaleFactors = ScaleFactors; /* values are shiftet right by one */
|
||||||
noIidSteps = NO_IID_STEPS;
|
noIidSteps = NO_IID_STEPS;
|
||||||
|
noFactors = NO_IID_LEVELS;
|
||||||
/*pQuantizedIIDs = quantizedIIDs;*/
|
/*pQuantizedIIDs = quantizedIIDs;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1012,7 +1014,10 @@ void initSlotBasedRotation( HANDLE_PS_DEC h_ps_d, /*!< pointer to the module sta
|
|||||||
|
|
||||||
/* ScaleR and ScaleL are scaled by 1 shift right */
|
/* ScaleR and ScaleL are scaled by 1 shift right */
|
||||||
|
|
||||||
|
ScaleL = ScaleR = 0;
|
||||||
|
if (noIidSteps + h_ps_d->specificTo.mpeg.coef.aaIidIndexMapped[env][bin] >= 0 && noIidSteps + h_ps_d->specificTo.mpeg.coef.aaIidIndexMapped[env][bin] < noFactors)
|
||||||
ScaleR = PScaleFactors[noIidSteps + h_ps_d->specificTo.mpeg.coef.aaIidIndexMapped[env][bin]];
|
ScaleR = PScaleFactors[noIidSteps + h_ps_d->specificTo.mpeg.coef.aaIidIndexMapped[env][bin]];
|
||||||
|
if (noIidSteps - h_ps_d->specificTo.mpeg.coef.aaIidIndexMapped[env][bin] >= 0 && noIidSteps - h_ps_d->specificTo.mpeg.coef.aaIidIndexMapped[env][bin] < noFactors)
|
||||||
ScaleL = PScaleFactors[noIidSteps - h_ps_d->specificTo.mpeg.coef.aaIidIndexMapped[env][bin]];
|
ScaleL = PScaleFactors[noIidSteps - h_ps_d->specificTo.mpeg.coef.aaIidIndexMapped[env][bin]];
|
||||||
|
|
||||||
AlphasValue = 0;
|
AlphasValue = 0;
|
||||||
|
Reference in New Issue
Block a user