diff options
author | Lajos Molnar <lajos@google.com> | 2014-03-21 19:20:07 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-03-21 19:20:07 +0000 |
commit | 0fcba89e5460ed3edca75322175b8a56a6e6f48d (patch) | |
tree | d20dd7448d2f0bfb6bbac56fbdc5a96a01b01599 /media/libstagefright | |
parent | 5ce204a6362840fe28aa762693edaab3d0da8718 (diff) | |
parent | 333ceb4f66ccf790081026f645474e07d832fbdb (diff) | |
download | frameworks_av-0fcba89e5460ed3edca75322175b8a56a6e6f48d.zip frameworks_av-0fcba89e5460ed3edca75322175b8a56a6e6f48d.tar.gz frameworks_av-0fcba89e5460ed3edca75322175b8a56a6e6f48d.tar.bz2 |
am 333ceb4f: Merge "DO NOT MERGE: PlaylistFetcher: fix infinite loop when parsing ADTS." into klp-dev
* commit '333ceb4f66ccf790081026f645474e07d832fbdb':
DO NOT MERGE: PlaylistFetcher: fix infinite loop when parsing ADTS.
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/httplive/PlaylistFetcher.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/media/libstagefright/httplive/PlaylistFetcher.cpp b/media/libstagefright/httplive/PlaylistFetcher.cpp index ada856d..668cbd4 100644 --- a/media/libstagefright/httplive/PlaylistFetcher.cpp +++ b/media/libstagefright/httplive/PlaylistFetcher.cpp @@ -1321,6 +1321,18 @@ status_t PlaylistFetcher::extractAndQueueAccessUnits( | (adtsHeader[4] << 3) | (adtsHeader[5] >> 5); + if (aac_frame_length == 0) { + const uint8_t *id3Header = adtsHeader; + if (!memcmp(id3Header, "ID3", 3)) { + ID3 id3(id3Header, buffer->size() - offset, true); + if (id3.isValid()) { + offset += id3.rawSize(); + continue; + }; + } + return ERROR_MALFORMED; + } + CHECK_LE(offset + aac_frame_length, buffer->size()); sp<ABuffer> unit = new ABuffer(aac_frame_length); |