diff options
author | Mark Salyzyn <salyzyn@google.com> | 2014-05-08 16:02:20 -0700 |
---|---|---|
committer | Mark Salyzyn <salyzyn@google.com> | 2014-05-08 16:06:54 -0700 |
commit | 088bf90e5de251f4b2f2419187d8ee5d7b2bd831 (patch) | |
tree | 0b7d928e7fc7317596b5769dc611d39eed4237f8 | |
parent | 113067e2161e206482e80cfa9b58eeca02e0f6b6 (diff) | |
download | system_core-088bf90e5de251f4b2f2419187d8ee5d7b2bd831.zip system_core-088bf90e5de251f4b2f2419187d8ee5d7b2bd831.tar.gz system_core-088bf90e5de251f4b2f2419187d8ee5d7b2bd831.tar.bz2 |
libziparchive: 64 bit issues
Change-Id: I1b53aff5b1527a3623d17deed306624707d345ef
-rw-r--r-- | libziparchive/zip_archive.cc | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/libziparchive/zip_archive.cc b/libziparchive/zip_archive.cc index f1780f4..92cb160 100644 --- a/libziparchive/zip_archive.cc +++ b/libziparchive/zip_archive.cc @@ -343,7 +343,7 @@ static int32_t MapCentralDirectory0(int fd, const char* debug_file_name, } ssize_t actual = TEMP_FAILURE_RETRY(read(fd, scan_buffer, read_amount)); if (actual != (ssize_t) read_amount) { - ALOGW("Zip: read %u failed: %s", read_amount, strerror(errno)); + ALOGW("Zip: read %" PRIu32 " failed: %s", read_amount, strerror(errno)); return kIoError; } @@ -493,18 +493,18 @@ static int32_t ParseZipArchive(ZipArchive* archive) { const uint8_t* ptr = cd_ptr; for (uint16_t i = 0; i < num_entries; i++) { if (get4LE(ptr) != kCDESignature) { - ALOGW("Zip: missed a central dir sig (at %d)", i); + ALOGW("Zip: missed a central dir sig (at %" PRIu16 ")", i); goto bail; } if (ptr + kCDELen > cd_ptr + cd_length) { - ALOGW("Zip: ran off the end (at %d)", i); + ALOGW("Zip: ran off the end (at %" PRIu16 ")", i); goto bail; } const off64_t local_header_offset = get4LE(ptr + kCDELocalOffset); if (local_header_offset >= archive->directory_offset) { - ALOGW("Zip: bad LFH offset %" PRId64 " at entry %d", local_header_offset, i); + ALOGW("Zip: bad LFH offset %" PRId64 " at entry %" PRIu16, local_header_offset, i); goto bail; } @@ -523,12 +523,12 @@ static int32_t ParseZipArchive(ZipArchive* archive) { ptr += kCDELen + file_name_length + extra_length + comment_length; if ((size_t)(ptr - cd_ptr) > cd_length) { - ALOGW("Zip: bad CD advance (%zu vs %zu) at entry %d", - (size_t) (ptr - cd_ptr), cd_length, i); + ALOGW("Zip: bad CD advance (%tu vs %zu) at entry %" PRIu16, + ptr - cd_ptr, cd_length, i); goto bail; } } - ALOGV("+++ zip good scan %d entries", num_entries); + ALOGV("+++ zip good scan %" PRIu16 " entries", num_entries); result = 0; @@ -711,7 +711,8 @@ static int32_t FindEntry(const ZipArchive* archive, const int ent, data->has_data_descriptor = 0; if (data->compressed_length != lfhCompLen || data->uncompressed_length != lfhUncompLen || data->crc32 != lfhCrc) { - ALOGW("Zip: size/crc32 mismatch. expected {%d, %d, %x}, was {%d, %d, %x}", + ALOGW("Zip: size/crc32 mismatch. expected {%" PRIu32 ", %" PRIu32 + ", %" PRIx32 "}, was {%" PRIu32 ", %" PRIu32 ", %" PRIx32 "}", data->compressed_length, data->uncompressed_length, data->crc32, lfhCompLen, lfhUncompLen, lfhCrc); return kInconsistentInformation; @@ -757,14 +758,14 @@ static int32_t FindEntry(const ZipArchive* archive, const int ent, } if ((off64_t)(data_offset + data->compressed_length) > cd_offset) { - ALOGW("Zip: bad compressed length in zip (%" PRId64 " + %zd > %" PRId64 ")", + ALOGW("Zip: bad compressed length in zip (%" PRId64 " + %" PRIu32 " > %" PRId64 ")", data_offset, data->compressed_length, cd_offset); return kInvalidOffset; } if (data->method == kCompressStored && (off64_t)(data_offset + data->uncompressed_length) > cd_offset) { - ALOGW("Zip: bad uncompressed length in zip (%" PRId64 " + %d > %" PRId64 ")", + ALOGW("Zip: bad uncompressed length in zip (%" PRId64 " + %" PRIu32 " > %" PRId64 ")", data_offset, data->uncompressed_length, cd_offset); return kInvalidOffset; } @@ -947,7 +948,7 @@ static int32_t InflateToFile(int fd, const ZipEntry* entry, *crc_out = zstream.adler; if (zstream.total_out != uncompressed_length || compressed_length != 0) { - ALOGW("Zip: size mismatch on inflated file (%ld vs %u)", + ALOGW("Zip: size mismatch on inflated file (%lu vs %" PRIu32 ")", zstream.total_out, uncompressed_length); result = kInconsistentInformation; goto z_bail; @@ -991,7 +992,7 @@ int32_t ExtractToMemory(ZipArchiveHandle handle, // TODO: Fix this check by passing the right flags to inflate2 so that // it calculates the CRC for us. if (entry->crc32 != crc && false) { - ALOGW("Zip: crc mismatch: expected %u, was %" PRIu64, entry->crc32, crc); + ALOGW("Zip: crc mismatch: expected %" PRIu32 ", was %" PRIu64, entry->crc32, crc); return kInconsistentInformation; } |