summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorDan Liang <dan.liang@intel.com>2015-04-07 17:03:56 +0800
committerDan Liang <dan.liang@intel.com>2015-04-08 17:13:55 +0800
commit2e81b588f2cc54eaa4f9c83cce279589fb221523 (patch)
treec76038187e1cfebfe86801d384628fe4eed69964 /media
parentddd1c72b7d4e407fed59a4f0f45408f1fe9a0cd8 (diff)
downloadframeworks_av-2e81b588f2cc54eaa4f9c83cce279589fb221523.zip
frameworks_av-2e81b588f2cc54eaa4f9c83cce279589fb221523.tar.gz
frameworks_av-2e81b588f2cc54eaa4f9c83cce279589fb221523.tar.bz2
Fix div zero error in corrupted media file
Some corrupted media file has timescale value as zero and shouldn't be used. Change-Id: I8f6a347f8651cdc7e8c370ab1881e1a5fcb30839 Signed-off-by: Dan Liang <dan.liang@intel.com>
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/MPEG4Extractor.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp
index 8bf7f63..3dd8b11 100644
--- a/media/libstagefright/MPEG4Extractor.cpp
+++ b/media/libstagefright/MPEG4Extractor.cpp
@@ -1172,6 +1172,11 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
return ERROR_IO;
}
+ if (!timescale) {
+ ALOGE("timescale should not be ZERO.");
+ return ERROR_MALFORMED;
+ }
+
mLastTrack->timescale = ntohl(timescale);
// 14496-12 says all ones means indeterminate, but some files seem to use
@@ -2636,6 +2641,11 @@ status_t MPEG4Extractor::verifyTrack(Track *track) {
return ERROR_MALFORMED;
}
+ if (track->timescale == 0) {
+ ALOGE("timescale invalid.");
+ return ERROR_MALFORMED;
+ }
+
return OK;
}