summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/DRMExtractor.cpp
diff options
context:
space:
mode:
authorJeff Tinker <jtinker@google.com>2015-08-11 15:52:26 -0700
committerJeff Tinker <jtinker@google.com>2015-08-11 15:55:02 -0700
commitfa8ebb45fd850f56ca1bf64fbed3ac11e10c7d3d (patch)
treed4cedfd6eb5ec89beec9379ba43f76e80ac8c4d2 /media/libstagefright/DRMExtractor.cpp
parent123e0f44f725d8fdb13bf6db2aacb91492e2ca7e (diff)
downloadframeworks_av-fa8ebb45fd850f56ca1bf64fbed3ac11e10c7d3d.zip
frameworks_av-fa8ebb45fd850f56ca1bf64fbed3ac11e10c7d3d.tar.gz
frameworks_av-fa8ebb45fd850f56ca1bf64fbed3ac11e10c7d3d.tar.bz2
Check integer overflow to prevent memory corruption
bug: 23016072 Change-Id: If3c9a835408773847c0024a812bd8b4915ebd680
Diffstat (limited to 'media/libstagefright/DRMExtractor.cpp')
-rw-r--r--media/libstagefright/DRMExtractor.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/media/libstagefright/DRMExtractor.cpp b/media/libstagefright/DRMExtractor.cpp
index 63cb430..9cb6e86 100644
--- a/media/libstagefright/DRMExtractor.cpp
+++ b/media/libstagefright/DRMExtractor.cpp
@@ -186,7 +186,8 @@ status_t DRMSource::read(MediaBuffer **buffer, const ReadOptions *options) {
srcOffset += mNALLengthSize;
- if (srcOffset + nalLength > len) {
+ size_t end = srcOffset + nalLength;
+ if (end > len || end < srcOffset) {
if (decryptedDrmBuffer.data) {
delete [] decryptedDrmBuffer.data;
decryptedDrmBuffer.data = NULL;