summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorWei Jia <wjia@google.com>2015-06-30 19:45:12 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-06-30 19:45:12 +0000
commit370290f400ff3057a71a192a70dfd69499aa8937 (patch)
tree173c8e276d3bc9c39bf09ffbd895c57da7300b23 /media
parent4c855d207edaaeb8c61109977a5297418295658c (diff)
parentbcd5edf99867b7bc10a3847d17cfb1e63b3b1764 (diff)
downloadframeworks_av-370290f400ff3057a71a192a70dfd69499aa8937.zip
frameworks_av-370290f400ff3057a71a192a70dfd69499aa8937.tar.gz
frameworks_av-370290f400ff3057a71a192a70dfd69499aa8937.tar.bz2
am bcd5edf9: am 13c925ca: am 6ff53b96: Merge "Prevent integer overflow when processing covr MPEG4 atoms" into klp-dev
* commit 'bcd5edf99867b7bc10a3847d17cfb1e63b3b1764': Prevent integer overflow when processing covr MPEG4 atoms
Diffstat (limited to 'media')
-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 00af00b..d1b39dc 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -1929,6 +1929,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) {