From 465972e0b91910492def675c42a2d9f3df6bbee2 Mon Sep 17 00:00:00 2001 From: Pavel Tsekov Date: Wed, 18 Jan 2006 15:14:56 +0000 Subject: [PATCH] * tar.c (LF_EXTHDR): New macro definition. (LF_GLOBAL_EXTHDR): Likewise. (tar_read_header): Skip over pax extended header and global extended header records. --- vfs/ChangeLog | 5 +++++ vfs/tar.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/vfs/ChangeLog b/vfs/ChangeLog index f9e10917a..4d32a68bb 100644 --- a/vfs/ChangeLog +++ b/vfs/ChangeLog @@ -1,3 +1,8 @@ +2006-01-18 Pavel Tsekov + + * tar.c (tar_read_header): Skip over pax extended header and + global extended header records. + 2005-11-15 Pavel Roskin * samba/lib/netmask.c: Include for exit() and diff --git a/vfs/tar.c b/vfs/tar.c index f8b033d97..361b7029f 100644 --- a/vfs/tar.c +++ b/vfs/tar.c @@ -117,6 +117,8 @@ union record { #define LF_DIR '5' /* Directory */ #define LF_FIFO '6' /* FIFO special file */ #define LF_CONTIG '7' /* Contiguous file */ +#define LF_EXTHDR 'x' /* pax Extended Header */ +#define LF_GLOBAL_EXTHDR 'g' /* pax Global Extended Header */ /* Further link types may be defined later. */ /* Note that the standards committee allows only capital A through @@ -427,6 +429,14 @@ tar_read_header (struct vfs_class *me, struct vfs_s_super *archive, if (header->header.linkflag == LF_DUMPDIR) return STATUS_SUCCESS; + /* + * Skip over pax extended header and global extended + * header records. + */ + if (header->header.linkflag == LF_EXTHDR || + header->header.linkflag == LF_GLOBAL_EXTHDR) + return STATUS_SUCCESS; + if (header->header.linkflag == LF_LONGNAME || header->header.linkflag == LF_LONGLINK) { char **longp;