summaryrefslogtreecommitdiffstats
path: root/lib/libarchive
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2005-01-25 16:55:28 +0000
committerkientzle <kientzle@FreeBSD.org>2005-01-25 16:55:28 +0000
commit634c300ead715444e79651876685007e233412f0 (patch)
tree98bf151940b474d024b82749e3026b94fc74e778 /lib/libarchive
parentb28fe2715d14eeace82992567eab9c32fe4bdff7 (diff)
downloadFreeBSD-src-634c300ead715444e79651876685007e233412f0.zip
FreeBSD-src-634c300ead715444e79651876685007e233412f0.tar.gz
Fix some signed/unsigned mismatches.
Reported by: tinderbox Pointy hat: me
Diffstat (limited to 'lib/libarchive')
-rw-r--r--lib/libarchive/archive_read_support_format_zip.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/lib/libarchive/archive_read_support_format_zip.c b/lib/libarchive/archive_read_support_format_zip.c
index 8c2cdc7..d1b48a6 100644
--- a/lib/libarchive/archive_read_support_format_zip.c
+++ b/lib/libarchive/archive_read_support_format_zip.c
@@ -336,6 +336,7 @@ zip_read_data_none(struct archive *a, const void **buff,
size_t *size, off_t *offset)
{
struct zip *zip;
+ ssize_t bytes_read;
zip = *(a->pformat_data);
@@ -346,16 +347,17 @@ zip_read_data_none(struct archive *a, const void **buff,
return (ARCHIVE_EOF);
}
- *size = (a->compression_read_ahead)(a, buff,
+ bytes_read = (a->compression_read_ahead)(a, buff,
zip->entry_bytes_remaining);
- if (*size <= 0) {
+ if (bytes_read <= 0) {
archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
"Truncated ZIP file data");
return (ARCHIVE_FATAL);
}
- if (*size > zip->entry_bytes_remaining)
- *size = zip->entry_bytes_remaining;
- (a->compression_read_consume)(a, *size);
+ if (bytes_read > zip->entry_bytes_remaining)
+ bytes_read = zip->entry_bytes_remaining;
+ (a->compression_read_consume)(a, bytes_read);
+ *size = bytes_read;
*offset = zip->entry_offset;
zip->entry_offset += *size;
zip->entry_bytes_remaining -= *size;
@@ -469,6 +471,7 @@ zip_read_data_skip(struct archive *a, const void **buff,
size_t *size, off_t *offset)
{
struct zip *zip;
+ ssize_t bytes_read;
zip = *(a->pformat_data);
@@ -480,18 +483,17 @@ zip_read_data_skip(struct archive *a, const void **buff,
/* Skip body of entry. */
while (zip->entry_bytes_remaining > 0) {
- *size = (a->compression_read_ahead)(a, buff,
+ bytes_read = (a->compression_read_ahead)(a, buff,
zip->entry_bytes_remaining);
- if (*size <= 0) {
+ if (bytes_read <= 0) {
archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT,
"Truncated ZIP file body");
return (ARCHIVE_FATAL);
}
- if (*size > zip->entry_bytes_remaining)
- *size = zip->entry_bytes_remaining;
- (a->compression_read_consume)(a, *size);
- zip->entry_bytes_remaining -= *size;
- zip->entry_offset += *size;
+ if (bytes_read > zip->entry_bytes_remaining)
+ bytes_read = zip->entry_bytes_remaining;
+ (a->compression_read_consume)(a, bytes_read);
+ zip->entry_bytes_remaining -= bytes_read;
}
return (ARCHIVE_OK);
}
OpenPOWER on IntegriCloud