aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gpgtar.h
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2022-01-09 17:34:04 +0000
committerWerner Koch <[email protected]>2022-01-09 17:37:56 +0000
commit99a8b1f13831c9d7ebd925abf2bc34e4c86f5404 (patch)
treed76ade705e41c0b3f945f5ad1da57e1c4ee7df87 /tools/gpgtar.h
parentgpgtar: Create extended header for long file names (diff)
downloadgnupg-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.h7
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*/