diff options
author | Werner Koch <[email protected]> | 2022-01-09 17:34:04 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2022-01-09 17:37:56 +0000 |
commit | 99a8b1f13831c9d7ebd925abf2bc34e4c86f5404 (patch) | |
tree | d76ade705e41c0b3f945f5ad1da57e1c4ee7df87 /tools/gpgtar.h | |
parent | gpgtar: Create extended header for long file names (diff) | |
download | gnupg-99a8b1f13831c9d7ebd925abf2bc34e4c86f5404.tar.gz gnupg-99a8b1f13831c9d7ebd925abf2bc34e4c86f5404.zip |
gpgtar: List and extract using extended headers.
* tools/gpgtar.h (TF_EXTHDR, TF_GEXTHDR): New.
* tools/gpgtar-list.c (parse_header): Set the new type flags.
(parse_extended_header): New.
(read_header): Add arg r_extheader and parse extended header.
(print_header): Consult the extended header.
(gpgtar_list): Pass an extended header object.
(gpgtar_read_header): Ditto.
(gpgtar_print_header): Ditto.
* tools/gpgtar-extract.c (extract): New arg exthdr and factor name
checking out to ...
(check_suspicious_name): new.
(extract_regular): Add arg exthdr and consult it.
(extract_directory): Likewise.
(gpgtar_extract): Provide extheader object.
--
GnuPG-bug-id: 5754
Diffstat (limited to 'tools/gpgtar.h')
-rw-r--r-- | tools/gpgtar.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/gpgtar.h b/tools/gpgtar.h index c931b8247..02b2d358c 100644 --- a/tools/gpgtar.h +++ b/tools/gpgtar.h @@ -95,6 +95,8 @@ typedef enum TF_DIRECTORY, TF_FIFO, TF_RESERVED, + TF_GEXTHDR, /* Global extended header. */ + TF_EXTHDR, /* Extended header. */ TF_UNKNOWN, /* Needs to be treated as regular file. */ TF_NOTSUP /* Not supported (used with --create). */ } typeflag_t; @@ -140,8 +142,9 @@ gpg_error_t gpgtar_extract (const char *filename, int decrypt); /*-- gpgtar-list.c --*/ gpg_error_t gpgtar_list (const char *filename, int decrypt); gpg_error_t gpgtar_read_header (estream_t stream, tarinfo_t info, - tar_header_t *r_header); -void gpgtar_print_header (tar_header_t header, estream_t out); + tar_header_t *r_header, strlist_t *r_extheader); +void gpgtar_print_header (tar_header_t header, strlist_t extheader, + estream_t out); #endif /*GPGTAR_H*/ |