Fix build failure on Windows.

- Apply cast statement
 - Do not use snprintf directly
 - Use ARCHIVE_LITERALL_LL macro for portability
This commit is contained in:
Michihiro NAKAJIMA committed 2014-10-12 13:10:47 +09:00
1 parent 7f875fa28d
commit 398c8033e3
3 files changed
+25 -20

No files matched your search

+1
View File
@@ -214,6 +214,7 @@ static int
aes_ctr_encrypt_counter(archive_crypto_ctx *ctx)
{
(void)ctx; /* UNUSED */
return -1;
}
static int
+6 -5
View File
@@ -132,7 +132,7 @@ struct trad_enc_ctx {
struct zip {
/* Structural information about the archive. */
char format_name[64];
struct archive_string format_name;
int64_t central_directory_offset;
size_t central_directory_entries_total;
size_t central_directory_entries_on_this_disk;
@@ -948,10 +948,10 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry,
zip->end_of_entry = 1;
/* Set up a more descriptive format name. */
snprintf(zip->format_name, sizeof(zip->format_name), "ZIP %d.%d (%s)",
archive_string_sprintf(&zip->format_name, "ZIP %d.%d (%s)",
version / 10, version % 10,
compression_name(zip->entry->compression));
a->archive.archive_format_name = zip->format_name;
a->archive.archive_format_name = zip->format_name.s;
return (ret);
}
@@ -1360,7 +1360,7 @@ static int
read_decryption_header(struct archive_read *a)
{
struct zip *zip = (struct zip *)(a->format->data);
const void *p;
const char *p;
unsigned int remaining_size;
unsigned int ts;
@@ -1857,6 +1857,7 @@ archive_read_format_zip_cleanup(struct archive_read *a)
free(zip->iv);
free(zip->erd);
free(zip->v_data);
archive_string_free(&zip->format_name);
free(zip);
(a->format->data) = NULL;
return (ARCHIVE_OK);
@@ -2330,7 +2331,7 @@ archive_read_format_zip_seekable_bid(struct archive_read *a, int best_bid)
/* Search last 16k of file for end-of-central-directory
* record (which starts with PK\005\006) or Zip64 locator
* record (which begins with PK\006\007) */
tail = zipmin(1024 * 16, file_size);
tail = (int)zipmin(1024 * 16, file_size);
current_offset = __archive_read_seek(a, -tail, SEEK_END);
if (current_offset < 0)
return 0;
+18 -15
View File
@@ -163,9 +163,9 @@ struct zip {
#ifdef HAVE_ZLIB_H
z_stream stream;
#endif
size_t len_buf;
unsigned char *buf;
#endif
};
/* Don't call this min or MIN, since those are already defined
@@ -753,10 +753,10 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry)
archive_le32enc(local_header + 18, 0xffffffffLL);
archive_le32enc(local_header + 22, 0xffffffffLL);
} else {
archive_le32enc(local_header + 18, zip->entry_compressed_size);
archive_le32enc(local_header + 22, zip->entry_uncompressed_size);
archive_le32enc(local_header + 18, (uint32_t)zip->entry_compressed_size);
archive_le32enc(local_header + 22, (uint32_t)zip->entry_uncompressed_size);
}
archive_le16enc(local_header + 26, filename_length);
archive_le16enc(local_header + 26, (uint16_t)filename_length);
if (zip->entry_encryption == ENCRYPTION_TRADITIONAL) {
if (zip->entry_flags & ZIP_ENTRY_FLAG_LENGTH_AT_END)
@@ -782,7 +782,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry)
archive_le16enc(zip->file_header + 10, zip->entry_compression);
archive_le32enc(zip->file_header + 12,
dos_time(archive_entry_mtime(zip->entry)));
archive_le16enc(zip->file_header + 28, filename_length);
archive_le16enc(zip->file_header + 28, (uint16_t)filename_length);
/* Following Info-Zip, store mode in the "external attributes" field. */
archive_le32enc(zip->file_header + 38,
archive_entry_mode(zip->entry) << 16);
@@ -882,7 +882,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry)
e += 8;
archive_le64enc(e, zip->entry_compressed_size);
e += 8;
archive_le16enc(zip64_start + 2, e - (zip64_start + 4));
archive_le16enc(zip64_start + 2, (uint16_t)(e - (zip64_start + 4)));
}
if (zip->flags & ZIP_FLAG_EXPERIMENT_xl) {
@@ -910,11 +910,11 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry)
if (included & 8) {
// Libarchive does not currently support file comments.
}
archive_le16enc(external_info + 2, e - (external_info + 4));
archive_le16enc(external_info + 2, (uint16_t)(e - (external_info + 4)));
}
/* Update local header with size of extra data and write it all out: */
archive_le16enc(local_header + 28, e - local_extra);
archive_le16enc(local_header + 28, (uint16_t)(e - local_extra));
ret = __archive_write_output(a, local_header, 30);
if (ret != ARCHIVE_OK)
@@ -1198,7 +1198,7 @@ archive_write_zip_finish_entry(struct archive_write *a)
archive_le64enc(z, zip->entry_offset);
z += 8;
}
archive_le16enc(zip64 + 2, z - (zip64 + 4));
archive_le16enc(zip64 + 2, (uint16_t)(z - (zip64 + 4)));
zd = cd_alloc(zip, z - zip64);
if (zd == NULL) {
archive_set_error(&a->archive, ENOMEM,
@@ -1217,13 +1217,16 @@ archive_write_zip_finish_entry(struct archive_write *a)
else
archive_le32enc(zip->file_header + 16, zip->entry_crc32);
archive_le32enc(zip->file_header + 20,
zipmin(zip->entry_compressed_written, 0xffffffffLL));
(uint32_t)zipmin(zip->entry_compressed_written,
ARCHIVE_LITERAL_LL(0xffffffff)));
archive_le32enc(zip->file_header + 24,
zipmin(zip->entry_uncompressed_written, 0xffffffffLL));
(uint32_t)zipmin(zip->entry_uncompressed_written,
ARCHIVE_LITERAL_LL(0xffffffff)));
archive_le16enc(zip->file_header + 30,
zip->central_directory_bytes - zip->file_header_extra_offset);
(uint16_t)(zip->central_directory_bytes - zip->file_header_extra_offset));
archive_le32enc(zip->file_header + 42,
zipmin(zip->entry_offset, 0xffffffffLL));
(uint32_t)zipmin(zip->entry_offset,
ARCHIVE_LITERAL_LL(0xffffffff)));
return (ARCHIVE_OK);
}
@@ -1286,9 +1289,9 @@ archive_write_zip_close(struct archive_write *a)
/* Format and write end of central directory. */
memset(buff, 0, sizeof(buff));
memcpy(buff, "PK\005\006", 4);
archive_le16enc(buff + 8, zipmin(0xffffU,
archive_le16enc(buff + 8, (uint16_t)zipmin(0xffffU,
zip->central_directory_entries));
archive_le16enc(buff + 10, zipmin(0xffffU,
archive_le16enc(buff + 10, (uint16_t)zipmin(0xffffU,
zip->central_directory_entries));
archive_le32enc(buff + 12,
(uint32_t)zipmin(0xffffffffLL, (offset_end - offset_start)));