aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gpgtar-create.c
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-create.c
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-create.c')
-rw-r--r--tools/gpgtar-create.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/gpgtar-create.c b/tools/gpgtar-create.c
index f92c2fb0a..ef9a29d15 100644
--- a/tools/gpgtar-create.c
+++ b/tools/gpgtar-create.c
@@ -17,6 +17,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: GPL-3.0-or-later
*/
#include <config.h>
@@ -293,8 +294,10 @@ add_entry (const char *dname, const char *entryname, scanctrl_t scanctrl)
xfree (hdr);
else
{
+ /* FIXME: We don't have the extended info yet available so we
+ * can't print them. */
if (opt.verbose)
- gpgtar_print_header (hdr, log_get_stream ());
+ gpgtar_print_header (hdr, NULL, log_get_stream ());
*scanctrl->flist_tail = hdr;
scanctrl->flist_tail = &hdr->next;
}
@@ -771,7 +774,7 @@ build_header (void *record, tar_header_t hdr, strlist_t *r_exthdr)
hdr->name, gpg_strerror (err));
return err;
}
- sl->flags = 2; /* Mark as linkname */
+ sl->flags = 2; /* Mark as linkpath */
}
}
#endif /*!HAVE_W32_SYSTEM*/