summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MPEG4Extractor.cpp
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2011-04-22 13:21:03 -0700
committerJames Dong <jdong@google.com>2011-04-22 13:21:49 -0700
commit34fe252c89e33572d01fea981b58d7b115e76164 (patch)
tree2a27bffe43a1bcdc1af422d878be6d7156795fc9 /media/libstagefright/MPEG4Extractor.cpp
parent88a90ab588f11d1ffaf08e178232359c6d8d03eb (diff)
downloadframeworks_av-34fe252c89e33572d01fea981b58d7b115e76164.zip
frameworks_av-34fe252c89e33572d01fea981b58d7b115e76164.tar.gz
frameworks_av-34fe252c89e33572d01fea981b58d7b115e76164.tar.bz2
Remove the assertion and report content malform error to application
Change-Id: I8e30c586048d38334fd4366959a124a99d8efe28 related-to-bug: 4267147
Diffstat (limited to 'media/libstagefright/MPEG4Extractor.cpp')
-rw-r--r--media/libstagefright/MPEG4Extractor.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp
index f9db1a1..01d0a92 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -2028,14 +2028,18 @@ status_t MPEG4Source::read(
size_t dstOffset = 0;
while (srcOffset < size) {
- CHECK(srcOffset + mNALLengthSize <= size);
- size_t nalLength = parseNALSize(&mSrcBuffer[srcOffset]);
- srcOffset += mNALLengthSize;
+ bool isMalFormed = (srcOffset + mNALLengthSize > size);
+ size_t nalLength = 0;
+ if (!isMalFormed) {
+ nalLength = parseNALSize(&mSrcBuffer[srcOffset]);
+ srcOffset += mNALLengthSize;
+ isMalFormed = srcOffset + nalLength > size;
+ }
- if (srcOffset + nalLength > size) {
+ if (isMalFormed) {
+ LOGE("Video is malformed");
mBuffer->release();
mBuffer = NULL;
-
return ERROR_MALFORMED;
}