diff options
author | Fraunhofer IIS FDK <audio-fdk@iis.fraunhofer.de> | 2018-05-09 13:32:45 +0200 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2018-05-09 15:15:28 -0700 |
commit | 44ac411683e7cfbfdb1f58e02d54377d709c8dd4 (patch) | |
tree | 756d84f186478676d172f1afc3339c05c6b69709 /libDRCdec/src | |
parent | 9ab67882eca7454dc001e158bc1e6e2219d6650b (diff) | |
download | fdk-aac-44ac411683e7cfbfdb1f58e02d54377d709c8dd4.tar.gz fdk-aac-44ac411683e7cfbfdb1f58e02d54377d709c8dd4.tar.bz2 fdk-aac-44ac411683e7cfbfdb1f58e02d54377d709c8dd4.zip |
FDK patches: fix overflows in decoder out-of-band config
Bug: 71430241
Bug: 79220129
Test: cts-tradefed run commandAndExit cts-dev -m CtsMediaTestCases -t android.media.cts.DecoderTestXheAac
cts-tradefed run commandAndExit cts-dev -m CtsMediaTestCases -t android.media.cts.DecoderTestAacDrc
Unsigned Integer Overflows in CDataStreamElement_Read()
Change-Id: Ic2f5b3ae111bf984d4d0db664823798957b0a979
Unsigned Integer Overflow in CProgramConfig_ReadHeightExt()
Change-Id: Iaebc458bb59504203e604a28ed6d5cecaa875c42
Unsigned Integer Overflow in transportDec_OutOfBandConfig()
Change-Id: I24a4b32d736f28c55147f0e2ca06fe5537da19c2
Unsigned Integer Overflows in CDKcrcEndReg() & crcCalc()
Change-Id: I6ebbe541a4d3b6bacbd5ace17264972951de7ca8
Unsigned Integer Overflows in ReadPsData()
Change-Id: Id36576fe545236860a06f17971494ecd4484c494
Unsigned Integer Overflow in SpatialDecParseSpecificConfig()
Change-Id: Ib468f129a951c69776b88468407f008ab4cfd2c7
Unsigned Integer Overflows in _readUniDrcConfigExtension() & _readLoudnessInfoSetExtension()
Change-Id: Ibcf7c6a23af49239206ea9301c58adac36e3ceba
Diffstat (limited to 'libDRCdec/src')
-rw-r--r-- | libDRCdec/src/drcDec_reader.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libDRCdec/src/drcDec_reader.cpp b/libDRCdec/src/drcDec_reader.cpp index db5fab7..6fe7a04 100644 --- a/libDRCdec/src/drcDec_reader.cpp +++ b/libDRCdec/src/drcDec_reader.cpp @@ -1622,7 +1622,7 @@ static DRC_ERROR _readUniDrcConfigExtension( HANDLE_FDK_BITSTREAM hBs, HANDLE_UNI_DRC_CONFIG hUniDrcConfig) { DRC_ERROR err = DE_OK; int k, bitSizeLen, extSizeBits, bitSize; - UINT nBitsRemaining; + INT nBitsRemaining; UNI_DRC_CONFIG_EXTENSION* pExt = &(hUniDrcConfig->uniDrcConfigExt); k = 0; @@ -1634,13 +1634,14 @@ static DRC_ERROR _readUniDrcConfigExtension( bitSize = FDKreadBits(hBs, extSizeBits); pExt->extBitSize[k] = bitSize + 1; - nBitsRemaining = FDKgetValidBits(hBs); + nBitsRemaining = (INT)FDKgetValidBits(hBs); switch (pExt->uniDrcConfigExtType[k]) { case UNIDRCCONFEXT_V1: err = _readDrcExtensionV1(hBs, hUniDrcConfig); if (err) return err; - if (nBitsRemaining != (pExt->extBitSize[k] + FDKgetValidBits(hBs))) + if (nBitsRemaining != + ((INT)pExt->extBitSize[k] + (INT)FDKgetValidBits(hBs))) return DE_NOT_OK; break; case UNIDRCCONFEXT_PARAM_DRC: @@ -1940,7 +1941,7 @@ static DRC_ERROR _readLoudnessInfoSetExtension( HANDLE_FDK_BITSTREAM hBs, HANDLE_LOUDNESS_INFO_SET hLoudnessInfoSet) { DRC_ERROR err = DE_OK; int k, bitSizeLen, extSizeBits, bitSize; - UINT nBitsRemaining; + INT nBitsRemaining; LOUDNESS_INFO_SET_EXTENSION* pExt = &(hLoudnessInfoSet->loudnessInfoSetExt); k = 0; @@ -1952,13 +1953,14 @@ static DRC_ERROR _readLoudnessInfoSetExtension( bitSize = FDKreadBits(hBs, extSizeBits); pExt->extBitSize[k] = bitSize + 1; - nBitsRemaining = FDKgetValidBits(hBs); + nBitsRemaining = (INT)FDKgetValidBits(hBs); switch (pExt->loudnessInfoSetExtType[k]) { case UNIDRCLOUDEXT_EQ: err = _readLoudnessInfoSetExtEq(hBs, hLoudnessInfoSet); if (err) return err; - if (nBitsRemaining != (pExt->extBitSize[k] + FDKgetValidBits(hBs))) + if (nBitsRemaining != + ((INT)pExt->extBitSize[k] + (INT)FDKgetValidBits(hBs))) return DE_NOT_OK; break; /* add future extensions here */ |