diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-05-31 18:17:21 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-05-31 18:17:21 +0000 |
commit | 79003f3b899698b70c4ae2685307390d6956c7a4 (patch) | |
tree | 95ab0779ef76842fd143861fb7b6d4b6a3ee1a6f | |
parent | 5c438190958f5265a764baf721ebbcde7ffb070c (diff) | |
parent | b74cf08d264a449de8a97be1073e6b0da6600e9a (diff) | |
download | sonivox-79003f3b899698b70c4ae2685307390d6956c7a4.tar.gz |
Merge cherrypicks of [2337407, 2337461, 2337391, 2337257, 2337318, 2337340, 2337423, 2337481, 2337412, 2337521, 2337413, 2337426, 2337414, 2337415, 2337523, 2337502, 2337503, 2337524, 2337463, 2337483, 2337417, 2337427, 2337561, 2337464, 2337581, 2337484, 2337525, 2337526, 2337527, 2337394, 2337562, 2337528, 2337504, 2337563, 2337565, 2337584, 2337602, 2337530, 2337585, 2337532, 2337487, 2337396, 2337505, 2337432, 2337603, 2337604, 2337534, 2337536, 2337508, 2337606] into nyc-mr1-volantis-releaseandroid-7.1.1_r49android-7.1.1_r46
Change-Id: I5affe689913c303d4e35101d97ca9f035d721637
-rw-r--r-- | arm-wt-22k/lib_src/eas_mdls.c | 5 | ||||
-rw-r--r-- | arm-wt-22k/lib_src/eas_xmf.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/arm-wt-22k/lib_src/eas_mdls.c b/arm-wt-22k/lib_src/eas_mdls.c index 296d783..8097ba4 100644 --- a/arm-wt-22k/lib_src/eas_mdls.c +++ b/arm-wt-22k/lib_src/eas_mdls.c @@ -785,6 +785,11 @@ static EAS_RESULT NextChunk (SDLS_SYNTHESIZER_DATA *pDLSData, EAS_I32 *pPos, EAS if ((result = EAS_HWGetDWord(pDLSData->hwInstData, pDLSData->fileHandle, pSize, EAS_FALSE)) != EAS_SUCCESS) return result; + if (*pSize < 0) { + ALOGE("b/37093318"); + return EAS_ERROR_FILE_FORMAT; + } + /* get form type for RIFF and LIST types */ if ((*pChunkType == CHUNK_RIFF) || (*pChunkType == CHUNK_LIST)) { diff --git a/arm-wt-22k/lib_src/eas_xmf.c b/arm-wt-22k/lib_src/eas_xmf.c index 830b6e5..169eb7e 100644 --- a/arm-wt-22k/lib_src/eas_xmf.c +++ b/arm-wt-22k/lib_src/eas_xmf.c @@ -27,6 +27,8 @@ *---------------------------------------------------------------------------- */ +#include <log/log.h> + #include "eas_data.h" #include "eas_miditypes.h" #include "eas_parser.h" @@ -649,6 +651,11 @@ static EAS_RESULT XMF_ReadNode (EAS_HW_DATA_HANDLE hwInstData, S_XMF_DATA *pXMFD for ( ; numItems > 0; numItems--) { /* process this item */ + if (offset <= nodeOffset) { + ALOGE("b/36725407: parser did not advance"); + return EAS_ERROR_FILE_FORMAT; + } + if ((result = XMF_ReadNode(hwInstData, pXMFData, offset, &length)) != EAS_SUCCESS) return result; |