diff options
author | cperciva <cperciva@FreeBSD.org> | 2007-04-03 23:53:55 +0000 |
---|---|---|
committer | cperciva <cperciva@FreeBSD.org> | 2007-04-03 23:53:55 +0000 |
commit | 65266e0a565f6ae26e3401daf1853ca31292e88d (patch) | |
tree | 000e7b3f6b583f760b73aa342c74a9ba82648b44 /lib | |
parent | 836059f8b9165522248a9ba213ea4a5a799416f2 (diff) | |
download | FreeBSD-src-65266e0a565f6ae26e3401daf1853ca31292e88d.zip FreeBSD-src-65266e0a565f6ae26e3401daf1853ca31292e88d.tar.gz |
Parse SCHILY.dev and SCHILY.ino fields. These are ignored when extracting
files, but used during archive creation. This change unbreaks
# tar -cf rcp.tar /bin/rcp
# tar -cf rcp-copy.tar @rcp.tar
# cmp rcp.tar rcp-copy.tar
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libarchive/archive_read_support_format_tar.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/libarchive/archive_read_support_format_tar.c b/lib/libarchive/archive_read_support_format_tar.c index 8228c1e..1f0bf80 100644 --- a/lib/libarchive/archive_read_support_format_tar.c +++ b/lib/libarchive/archive_read_support_format_tar.c @@ -1295,6 +1295,10 @@ pax_attribute(struct archive_entry *entry, struct stat *st, tar_atol10(value, wcslen(value))); else if (wcscmp(key, L"SCHILY.fflags")==0) archive_entry_copy_fflags_text_w(entry, value); + else if (wcscmp(key, L"SCHILY.dev")==0) + st->st_dev = tar_atol10(value, wcslen(value)); + else if (wcscmp(key, L"SCHILY.ino")==0) + st->st_ino = tar_atol10(value, wcslen(value)); else if (wcscmp(key, L"SCHILY.nlink")==0) st->st_nlink = tar_atol10(value, wcslen(value)); break; |