diff options
| author | Tim J. Robbins <tjr@FreeBSD.org> | 2005-10-01 05:42:44 +0000 |
|---|---|---|
| committer | Tim J. Robbins <tjr@FreeBSD.org> | 2005-10-01 05:42:44 +0000 |
| commit | 56160607b65f184f6b17d524e69d54a2fe757552 (patch) | |
| tree | d239fbd07751232e4b5c67cc92e555653ab77667 /contrib/cpio | |
| parent | 2437584cf041ab28869c1ac7c0fd6fa341fbd242 (diff) | |
Notes
Diffstat (limited to 'contrib/cpio')
| -rw-r--r-- | contrib/cpio/src/tar.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/contrib/cpio/src/tar.c b/contrib/cpio/src/tar.c index 939d83a225aa..75db5478ace4 100644 --- a/contrib/cpio/src/tar.c +++ b/contrib/cpio/src/tar.c @@ -1,3 +1,5 @@ +/* $FreeBSD$ */ + /* tar.c - read in write tar headers for cpio Copyright (C) 1992, 2001, 2004 Free Software Foundation, Inc. @@ -402,6 +404,19 @@ read_in_tar_header (struct new_cpio_header *file_hdr, int in_des) else file_hdr->c_mode |= CP_IFREG; break; + case 'x': case 'g': + /* Ignore pax 'x' and 'g' extension entries. */ + /* Skip body of this entry. */ + while (file_hdr->c_filesize > 0) { + tape_buffered_read(((char *) &tar_rec), in_des, TARRECORDSIZE); + if (file_hdr->c_filesize > TARRECORDSIZE) + file_hdr->c_filesize -= TARRECORDSIZE; + else + file_hdr->c_filesize = 0; + } + /* Read next header and return that instead. */ + read_in_tar_header(file_hdr, in_des); + break; } break; } |
