diff options
| author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-11-29 22:11:28 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-11-29 22:11:28 +0000 |
| commit | 0e211e55fe51adbd6bab7278ff1ceabea21faf78 (patch) | |
| tree | 59fbdd10f7bd5ef772d1411e8fb2a7c57cdd4c7e /libartbase | |
| parent | 4afe9f5218956a3f2b6827e26b10c0ed48af864b (diff) | |
| parent | 2b41ccaa462f5faa92edde97504b785ddca415f5 (diff) | |
| download | art-0e211e55fe51adbd6bab7278ff1ceabea21faf78.tar.gz art-0e211e55fe51adbd6bab7278ff1ceabea21faf78.tar.bz2 art-0e211e55fe51adbd6bab7278ff1ceabea21faf78.zip | |
Merge "Extract dex file if it is uncompressed but unaligned"
Diffstat (limited to 'libartbase')
| -rw-r--r-- | libartbase/base/zip_archive.cc | 5 | ||||
| -rw-r--r-- | libartbase/base/zip_archive.h | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/libartbase/base/zip_archive.cc b/libartbase/base/zip_archive.cc index 8ceea83be4..a7f4b28c84 100644 --- a/libartbase/base/zip_archive.cc +++ b/libartbase/base/zip_archive.cc @@ -189,8 +189,9 @@ MemMap ZipEntry::MapDirectlyFromFile(const char* zip_filename, std::string* erro MemMap ZipEntry::MapDirectlyOrExtract(const char* zip_filename, const char* entry_filename, - std::string* error_msg) { - if (IsUncompressed() && GetFileDescriptor(handle_) >= 0) { + std::string* error_msg, + size_t alignment) { + if (IsUncompressed() && IsAlignedTo(alignment) && GetFileDescriptor(handle_) >= 0) { std::string local_error_msg; MemMap ret = MapDirectlyFromFile(zip_filename, &local_error_msg); if (ret.IsValid()) { diff --git a/libartbase/base/zip_archive.h b/libartbase/base/zip_archive.h index d326a9e9d7..fc04ec1e91 100644 --- a/libartbase/base/zip_archive.h +++ b/libartbase/base/zip_archive.h @@ -59,7 +59,8 @@ class ZipEntry { MemMap MapDirectlyOrExtract(const char* zip_filename, const char* entry_filename, - std::string* error_msg); + std::string* error_msg, + size_t alignment); uint32_t GetUncompressedLength(); uint32_t GetCrc32(); |
