summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MPEG4Extractor.cpp
diff options
context:
space:
mode:
authorWei Jia <wjia@google.com>2015-06-05 16:32:42 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-06-05 16:32:42 +0000
commit13c925cab2decaed6786b0642f2b5a9f8516e71a (patch)
tree2ab38182ae494e4a158b65c9d838c445cda0226f /media/libstagefright/MPEG4Extractor.cpp
parent1f44d837a9273dc86bf0c928c2ead313d71d1464 (diff)
parent6ff53b96235bf99cdc1023b99d44f1c4cade1c0a (diff)
downloadframeworks_av-13c925cab2decaed6786b0642f2b5a9f8516e71a.zip
frameworks_av-13c925cab2decaed6786b0642f2b5a9f8516e71a.tar.gz
frameworks_av-13c925cab2decaed6786b0642f2b5a9f8516e71a.tar.bz2
am 6ff53b96: Merge "Prevent integer overflow when processing covr MPEG4 atoms" into klp-dev
* commit '6ff53b96235bf99cdc1023b99d44f1c4cade1c0a': Prevent integer overflow when processing covr MPEG4 atoms
Diffstat (limited to 'media/libstagefright/MPEG4Extractor.cpp')
-rw-r--r--media/libstagefright/MPEG4Extractor.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp
index 4f08f70..b3eebfa 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -1763,6 +1763,10 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
if (mFileMetaData != NULL) {
ALOGV("chunk_data_size = %lld and data_offset = %lld",
chunk_data_size, data_offset);
+
+ if (chunk_data_size >= SIZE_MAX - 1) {
+ return ERROR_MALFORMED;
+ }
sp<ABuffer> buffer = new ABuffer(chunk_data_size + 1);
if (mDataSource->readAt(
data_offset, buffer->data(), chunk_data_size) != (ssize_t)chunk_data_size) {