author | Jean-Yves Avenard <jyavenard@mozilla.com> |
Sat, 28 May 2016 10:42:01 +1000 | |
changeset 340585 | 38c9fa1d2e59966341e024e27059ee3354446d4a |
parent 340584 | 5c383b2162f7e7c3641598344f201dafae9d1d6b |
child 340586 | c46e0dfad282f738981fd62bb91f5b5161c160e1 |
push id | 1183 |
push user | raliiev@mozilla.com |
push date | Mon, 05 Sep 2016 20:01:49 +0000 |
treeherder | mozilla-release@3148731bed45 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | kentuckyfriedtakahe |
bugs | 1275853 |
milestone | 49.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/frameworks/av/media/libstagefright/MPEG4Extractor.cpp @@ -1166,19 +1166,18 @@ status_t MPEG4Extractor::parseChunk(off6 *offset = data_offset + 8; for (uint32_t i = 0; i < entry_count; ++i) { status_t err = parseChunk(offset, depth + 1); if (err != OK) { return err; } } - if (*offset != stop_offset) { - return ERROR_MALFORMED; - } + // Some muxers add some padding after the stsd content. Skip it. + *offset = stop_offset; break; } case FOURCC('m', 'p', '4', 'a'): case FOURCC('.', 'm', 'p', '3'): case FOURCC('e', 'n', 'c', 'a'): case FOURCC('s', 'a', 'm', 'r'): case FOURCC('s', 'a', 'w', 'b'):
--- a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp +++ b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp @@ -390,17 +390,17 @@ status_t SampleTable::setCompositionTime uint32_t numEntries = U32_AT(&header[4]); if (U32_AT(header) != 0 && numEntries) { // Expected version = 0, flags = 0. return ERROR_MALFORMED; } - if (data_size != ((uint64_t)numEntries + 1) * 8) { + if (data_size < ((uint64_t)numEntries + 1) * 8) { return ERROR_MALFORMED; } mNumCompositionTimeDeltaEntries = numEntries; mCompositionTimeDeltaEntries = new uint32_t[2 * numEntries]; if (mDataSource->readAt( data_offset + 8, mCompositionTimeDeltaEntries, numEntries * 8)