diff options
-rw-r--r-- | include/tar.h | 1 | ||||
-rw-r--r-- | lib/tar/read_header.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/include/tar.h b/include/tar.h index def36be..af3c9ab 100644 --- a/include/tar.h +++ b/include/tar.h @@ -105,6 +105,7 @@ typedef struct { #define TAR_TYPE_GNU_SPARSE 'S' #define TAR_TYPE_PAX 'x' +#define TAR_TYPE_PAX_GLOBAL 'g' #define TAR_MAGIC "ustar" #define TAR_VERSION "00" diff --git a/lib/tar/read_header.c b/lib/tar/read_header.c index 2918d09..1f20334 100644 --- a/lib/tar/read_header.c +++ b/lib/tar/read_header.c @@ -222,6 +222,11 @@ int read_header(FILE *fp, tar_header_decoded_t *out) goto fail; set_by_pax |= PAX_NAME; continue; + case TAR_TYPE_PAX_GLOBAL: + if (read_number(hdr.size, sizeof(hdr.size), &pax_size)) + goto fail; + skip_entry(fp, pax_size); + continue; case TAR_TYPE_PAX: clear_header(out); if (read_number(hdr.size, sizeof(hdr.size), &pax_size)) |