diff options
author | Fraunhofer IIS FDK <audio-fdk@iis.fraunhofer.de> | 2018-06-08 18:03:16 +0200 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-09-10 23:19:19 +0000 |
commit | 9744e41c40598c6a0b74440f3b5be63f9f3708a5 (patch) | |
tree | 66fe1fc4eb2c283bcebf91e53f365c6b22f1b47c /libAACdec/src/rvlcbit.cpp | |
parent | 61381bd0f4bc012876ccf4b63eafddd2d60c35c9 (diff) | |
download | fdk-aac-9744e41c40598c6a0b74440f3b5be63f9f3708a5.tar.gz fdk-aac-9744e41c40598c6a0b74440f3b5be63f9f3708a5.tar.bz2 fdk-aac-9744e41c40598c6a0b74440f3b5be63f9f3708a5.zip |
Prevent bit buffer counter overflow.
While long-term test we discovered a bit counter overflow in the bit buffer.
The bit buffer state was only used by HCR and RVLC tool and can easily be substituted with FDKgetValidBits() call.
The following patch completely removes the bit counter and all its obsolete functions.
Bug: 112662184
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: Icee0519d26a2aa62367d2dece59cd3d60ffcade7
(cherry picked from commit 15292f7e9620caf9e8df26a62efc2a2891ea822e)
Diffstat (limited to 'libAACdec/src/rvlcbit.cpp')
-rw-r--r-- | libAACdec/src/rvlcbit.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libAACdec/src/rvlcbit.cpp b/libAACdec/src/rvlcbit.cpp index c06cf96..b0c4596 100644 --- a/libAACdec/src/rvlcbit.cpp +++ b/libAACdec/src/rvlcbit.cpp @@ -123,10 +123,10 @@ read direction. It is called very often, therefore it makes sense to inline it -------------------------------------------------------------------------------------------- */ -UCHAR rvlcReadBitFromBitstream(HANDLE_FDK_BITSTREAM bs, INT *pPosition, - UCHAR readDirection) { +UCHAR rvlcReadBitFromBitstream(HANDLE_FDK_BITSTREAM bs, const INT bsAnchor, + INT *pPosition, UCHAR readDirection) { UINT bit; - INT readBitOffset = *pPosition - FDKgetBitCnt(bs); + INT readBitOffset = (INT)FDKgetValidBits(bs) - bsAnchor + *pPosition; if (readBitOffset) { FDKpushBiDirectional(bs, readBitOffset); |