diff options
author | Dan Liang <dan.liang@intel.com> | 2015-04-07 17:03:56 +0800 |
---|---|---|
committer | Dan Liang <dan.liang@intel.com> | 2015-04-08 17:13:55 +0800 |
commit | 2e81b588f2cc54eaa4f9c83cce279589fb221523 (patch) | |
tree | c76038187e1cfebfe86801d384628fe4eed69964 /media | |
parent | ddd1c72b7d4e407fed59a4f0f45408f1fe9a0cd8 (diff) | |
download | frameworks_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.cpp | 10 |
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; } |