summaryrefslogtreecommitdiff
path: root/lib/tar/pax_header.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tar/pax_header.c')
-rw-r--r--lib/tar/pax_header.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/tar/pax_header.c b/lib/tar/pax_header.c
index 4eeabf5..448976d 100644
--- a/lib/tar/pax_header.c
+++ b/lib/tar/pax_header.c
@@ -110,6 +110,13 @@ int read_pax_header(FILE *fp, sqfs_u64 entsize, unsigned int *set_by_pax,
if (pax_read_decimal(ptr + 16, &out->actual_size))
goto fail;
*set_by_pax |= PAX_SPARSE_SIZE;
+ } else if (!strncmp(ptr, "GNU.sparse.realsize=", 20)) {
+ if (pax_read_decimal(ptr + 20, &out->actual_size))
+ goto fail;
+ *set_by_pax |= PAX_SPARSE_SIZE;
+ } else if (!strncmp(ptr, "GNU.sparse.major=", 17) ||
+ !strncmp(ptr, "GNU.sparse.minor=", 17)) {
+ *set_by_pax |= PAX_SPARSE_GNU_1_X;
} else if (!strncmp(ptr, "GNU.sparse.offset=", 18)) {
if (pax_read_decimal(ptr + 18, &offset))
goto fail;