From: Spacefish Date: Sun, 31 Mar 2024 19:26:09 +0000 (+0200) Subject: read 64bit instead of 32bit integer in fallback code in archive_read_support_format_z... X-Git-Tag: v3.7.3~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad5a0b542c027883d7069f6844045e6788c7d70c;p=thirdparty%2Flibarchive.git read 64bit instead of 32bit integer in fallback code in archive_read_support_format_zip.c (#2104) Ancillary issue discovered while auditing some old PRs. A 64-bit size value was being read as a 32-bit value. --- diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c index 6722b0515..212bfff9f 100644 --- a/libarchive/archive_read_support_format_zip.c +++ b/libarchive/archive_read_support_format_zip.c @@ -1561,7 +1561,7 @@ consume_end_of_file_marker(struct archive_read *a, struct zip *zip) compressed32 = archive_le32dec(p); uncompressed32 = archive_le32dec(p + 4); compressed64 = archive_le64dec(p); - uncompressed64 = archive_le32dec(p + 8); + uncompressed64 = archive_le64dec(p + 8); /* The earlier patterns may have failed because of CRC32 * mismatch, so it's still possible that both sizes match.