From: Zdenek Zambersky Date: Tue, 11 Jan 2022 13:43:27 +0000 (+0100) Subject: Fixed size filed in pax header X-Git-Tag: v3.6.0~21^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F1653%2Fhead;p=thirdparty%2Flibarchive.git Fixed size filed in pax header --- diff --git a/libarchive/archive_write_set_format_pax.c b/libarchive/archive_write_set_format_pax.c index a2b271071..52911491f 100644 --- a/libarchive/archive_write_set_format_pax.c +++ b/libarchive/archive_write_set_format_pax.c @@ -1028,10 +1028,8 @@ archive_write_pax_header(struct archive_write *a, archive_string_init(&entry_name); archive_strcpy(&entry_name, archive_entry_pathname(entry_main)); - /* If file size is too large, add 'size' to pax extended attrs. */ + /* If file size is too large, we need pax extended attrs. */ if (archive_entry_size(entry_main) >= (((int64_t)1) << 33)) { - add_pax_attr_int(&(pax->pax_header), "size", - archive_entry_size(entry_main)); need_extension = 1; } @@ -1347,6 +1345,12 @@ archive_write_pax_header(struct archive_write *a, mapsize + pax->sparse_map_padding + sparse_total); } + /* If file size is too large, add 'size' to pax extended attrs. */ + if (archive_entry_size(entry_main) >= (((int64_t)1) << 33)) { + add_pax_attr_int(&(pax->pax_header), "size", + archive_entry_size(entry_main)); + } + /* Format 'ustar' header for main entry. * * The trouble with file size: If the reader can't understand