Fix signed integer overflow in calcFactorPerBand() calculation.

Bug: 131430997
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I9f18f675112651be8dec5c0474601ca6531fbf15
This commit is contained in:
Fraunhofer IIS FDK 2019-10-18 14:02:58 +02:00 committed by Jean-Michel Trivi
parent a7029823f4
commit 9ba6f8b6a2
1 changed files with 5 additions and 2 deletions

View File

@ -1,7 +1,7 @@
/* -----------------------------------------------------------------------------
Software License for The Fraunhofer FDK AAC Codec Library for Android
© Copyright 1995 - 2018 Fraunhofer-Gesellschaft zur Förderung der angewandten
© Copyright 1995 - 2019 Fraunhofer-Gesellschaft zur Förderung der angewandten
Forschung e.V. All rights reserved.
1. INTRODUCTION
@ -230,6 +230,8 @@ static UCHAR getStopBand(
}
}
stopMin = fMin(stopMin, 64);
/*
Choose a stop band between k1 and 64 depending on stopFreq (0..13),
based on a logarithmic scale.
@ -523,7 +525,8 @@ static FIXP_SGL calcFactorPerBand(int k_start, int k_stop, int num_bands) {
step = FL2FXCONST_DBL(0.0f);
}
}
return FX_DBL2FX_SGL(bandfactor << 1);
return (bandfactor >= FL2FXCONST_DBL(0.5)) ? (FIXP_SGL)MAXVAL_SGL
: FX_DBL2FX_SGL(bandfactor << 1);
}
/*!