diff options
author | Chad Brubaker <cbrubaker@google.com> | 2015-10-07 15:42:11 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-11-05 21:16:19 -0800 |
commit | f9e8f2fcaad04776a93bc659a9d9017011fcb085 (patch) | |
tree | 997fe6a1a760616638073cb181f50bdc61ff4929 /media/libstagefright/OggExtractor.cpp | |
parent | d30f25cb92942cfe58708666235dbdedfc604070 (diff) | |
download | frameworks_av-f9e8f2fcaad04776a93bc659a9d9017011fcb085.zip frameworks_av-f9e8f2fcaad04776a93bc659a9d9017011fcb085.tar.gz frameworks_av-f9e8f2fcaad04776a93bc659a9d9017011fcb085.tar.bz2 |
Fix benign overflow in getTimeUsOfGranule
Bug: 24748446
Change-Id: I1f8e3927e9a8f646a0d804161924ae0dcc5ab75d
Diffstat (limited to 'media/libstagefright/OggExtractor.cpp')
-rw-r--r-- | media/libstagefright/OggExtractor.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/media/libstagefright/OggExtractor.cpp b/media/libstagefright/OggExtractor.cpp index 578171f..5c81f1a 100644 --- a/media/libstagefright/OggExtractor.cpp +++ b/media/libstagefright/OggExtractor.cpp @@ -179,6 +179,9 @@ struct MyVorbisExtractor : public MyOggExtractor { protected: virtual int64_t getTimeUsOfGranule(uint64_t granulePos) const { + if (granulePos > INT64_MAX / 1000000ll) { + return INT64_MAX; + } return granulePos * 1000000ll / mVi.rate; } @@ -917,6 +920,9 @@ int64_t MyOpusExtractor::getTimeUsOfGranule(uint64_t granulePos) const { if (granulePos > mCodecDelay) { pcmSamplePosition = granulePos - mCodecDelay; } + if (pcmSamplePosition > INT64_MAX / 1000000ll) { + return INT64_MAX; + } return pcmSamplePosition * 1000000ll / kOpusSampleRate; } |