summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorAbhishek Arya <aarya@google.com>2015-08-18 16:47:03 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-08-18 16:47:03 +0000
commit3459ea265ab8c61cca1b2ed97162fe3c3d05a698 (patch)
treee3a2955f9811e59b1be09602f91f75bcd1d8f75c /media
parent48bdf782f92a975f3597c40d175fa579adfd74d4 (diff)
parentde47cd3c5223bb0fdd7376f8ea21ba2f857bafbe (diff)
downloadframeworks_av-3459ea265ab8c61cca1b2ed97162fe3c3d05a698.zip
frameworks_av-3459ea265ab8c61cca1b2ed97162fe3c3d05a698.tar.gz
frameworks_av-3459ea265ab8c61cca1b2ed97162fe3c3d05a698.tar.bz2
am de47cd3c: am 3b77e940: am d146d466: am 6f561b93: Merge "MatroskaExtractor: detect infinite loop when parsing NALs" into klp-dev
* commit 'de47cd3c5223bb0fdd7376f8ea21ba2f857bafbe': MatroskaExtractor: detect infinite loop when parsing NALs
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/matroska/MatroskaExtractor.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/media/libstagefright/matroska/MatroskaExtractor.cpp b/media/libstagefright/matroska/MatroskaExtractor.cpp
index 9da835d..e53319b 100644
--- a/media/libstagefright/matroska/MatroskaExtractor.cpp
+++ b/media/libstagefright/matroska/MatroskaExtractor.cpp
@@ -21,6 +21,7 @@
#include "MatroskaExtractor.h"
#include <media/stagefright/foundation/ADebug.h>
+#include <media/stagefright/foundation/AUtils.h>
#include <media/stagefright/foundation/hexdump.h>
#include <media/stagefright/DataSource.h>
#include <media/stagefright/MediaBuffer.h>
@@ -631,7 +632,12 @@ status_t MatroskaSource::read(
TRESPASS();
}
- if (srcOffset + mNALSizeLen + NALsize > srcSize) {
+ if (srcOffset + mNALSizeLen + NALsize <= srcOffset + mNALSizeLen) {
+ frame->release();
+ frame = NULL;
+
+ return ERROR_MALFORMED;
+ } else if (srcOffset + mNALSizeLen + NALsize > srcSize) {
break;
}