Fix unsigned integer overflow in aacDecoder_UpdateBitStreamCounters()

am: f19e863cce

Change-Id: I0e8a97a690f959840fbb3a249e41b260ac87d922
This commit is contained in:
Fraunhofer IIS FDK 2018-05-25 19:06:33 -07:00 committed by android-build-merger
commit 1f93990cfc
2 changed files with 12 additions and 10 deletions

View File

@ -861,14 +861,16 @@ typedef struct {
returns AAC_DEC_TRANSPORT_SYNC_ERROR. It will be
< 0 if the estimation failed. */
UINT numTotalBytes; /*!< This is the number of total bytes that have passed
through the decoder. */
UINT numBadBytes; /*!< This is the number of total bytes that were considered
with errors from numTotalBytes. */
UINT numTotalAccessUnits; /*!< This is the number of total access units that
have passed through the decoder. */
UINT numBadAccessUnits; /*!< This is the number of total access units that
were considered with errors from numTotalBytes. */
INT64 numTotalBytes; /*!< This is the number of total bytes that have passed
through the decoder. */
INT64
numBadBytes; /*!< This is the number of total bytes that were considered
with errors from numTotalBytes. */
INT64
numTotalAccessUnits; /*!< This is the number of total access units that
have passed through the decoder. */
INT64 numBadAccessUnits; /*!< This is the number of total access units that
were considered with errors from numTotalBytes. */
/* Metadata */
SCHAR drcProgRefLev; /*!< DRC program reference level. Defines the reference

View File

@ -1085,12 +1085,12 @@ static void aacDecoder_UpdateBitStreamCounters(CStreamInfo *pSi,
INT nBytes;
nBytes = nBits >> 3;
pSi->numTotalBytes = (UINT)((INT)pSi->numTotalBytes + nBytes);
pSi->numTotalBytes += nBytes;
if (IS_OUTPUT_VALID(ErrorStatus)) {
pSi->numTotalAccessUnits++;
}
if (IS_DECODE_ERROR(ErrorStatus)) {
pSi->numBadBytes = (UINT)((INT)pSi->numBadBytes + nBytes);
pSi->numBadBytes += nBytes;
pSi->numBadAccessUnits++;
}
}