]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fixed size filed in pax header 1653/head
authorZdenek Zambersky <zzambers@redhat.com>
Tue, 11 Jan 2022 13:43:27 +0000 (14:43 +0100)
committerZdenek Zambersky <zzambers@redhat.com>
Tue, 11 Jan 2022 13:43:27 +0000 (14:43 +0100)
libarchive/archive_write_set_format_pax.c

index a2b27107195de16d54856cb5e78927e5619bf1da..52911491f65f44bb865f4cc6fa491160ac1be09b 100644 (file)
@@ -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