diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-12-28 18:30:10 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-12-28 18:30:10 +0000 |
commit | 04d0fa42ff6b0ac589f09da1c97ff8e809000166 (patch) | |
tree | 4273511e2bf62f8094dfb97864077e2c77077a1f | |
parent | 37084173037ae61d1ac10fe2f8afd31d44c23967 (diff) | |
parent | 293ccc7fbc509cc0ba4d944bd1bb9ad6f79c037d (diff) | |
download | fdk-aac-04d0fa42ff6b0ac589f09da1c97ff8e809000166.tar.gz fdk-aac-04d0fa42ff6b0ac589f09da1c97ff8e809000166.tar.bz2 fdk-aac-04d0fa42ff6b0ac589f09da1c97ff8e809000166.zip |
Merge changes I5eb0f88a,I1d853414
* changes:
Fix unsigned integer overflow in Hcr_State_BODY_SIGN_ESC__ESC_WORD().
Validate DRC compression factor and DRC boost factor value range in aacDecoder_SetParam().
-rw-r--r-- | libAACdec/src/aacdec_hcrs.cpp | 4 | ||||
-rw-r--r-- | libAACdec/src/aacdecoder_lib.cpp | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libAACdec/src/aacdec_hcrs.cpp b/libAACdec/src/aacdec_hcrs.cpp index 44b32a5..5e3f9ac 100644 --- a/libAACdec/src/aacdec_hcrs.cpp +++ b/libAACdec/src/aacdec_hcrs.cpp @@ -1,7 +1,7 @@ /* ----------------------------------------------------------------------------- Software License for The Fraunhofer FDK AAC Codec Library for Android -© Copyright 1995 - 2019 Fraunhofer-Gesellschaft zur Förderung der angewandten +© Copyright 1995 - 2020 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. All rights reserved. 1. INTRODUCTION @@ -173,7 +173,9 @@ void DecodeNonPCWs(HANDLE_FDK_BITSTREAM bs, H_HCR_INFO pHcr) { pHcr->segmentInfo.readDirection = FROM_RIGHT_TO_LEFT; /* Process sets subsequently */ + numSet = fMin(numSet, (UCHAR)MAX_HCR_SETS); for (currentSet = 1; currentSet < numSet; currentSet++) { + /* step 1 */ numCodeword -= *pNumSegment; /* number of remaining non PCWs [for all sets] */ diff --git a/libAACdec/src/aacdecoder_lib.cpp b/libAACdec/src/aacdecoder_lib.cpp index 0f281eb..4c0d347 100644 --- a/libAACdec/src/aacdecoder_lib.cpp +++ b/libAACdec/src/aacdecoder_lib.cpp @@ -822,6 +822,9 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_SetParam( case AAC_DRC_ATTENUATION_FACTOR: /* DRC compression factor (where 0 is no and 127 is max compression) */ + if ((value < 0) || (value > 127)) { + return AAC_DEC_SET_PARAM_FAIL; + } errorStatus = aacDecoder_drcSetParam(hDrcInfo, DRC_CUT_SCALE, value); uniDrcErr = FDK_drcDec_SetParam(self->hUniDrcDecoder, DRC_DEC_COMPRESS, value * (FL2FXCONST_DBL(0.5f / 127.0f))); @@ -829,6 +832,9 @@ LINKSPEC_CPP AAC_DECODER_ERROR aacDecoder_SetParam( case AAC_DRC_BOOST_FACTOR: /* DRC boost factor (where 0 is no and 127 is max boost) */ + if ((value < 0) || (value > 127)) { + return AAC_DEC_SET_PARAM_FAIL; + } errorStatus = aacDecoder_drcSetParam(hDrcInfo, DRC_BOOST_SCALE, value); uniDrcErr = FDK_drcDec_SetParam(self->hUniDrcDecoder, DRC_DEC_BOOST, value * (FL2FXCONST_DBL(0.5f / 127.0f))); |