summaryrefslogtreecommitdiffstats
path: root/lib/libarchive
diff options
context:
space:
mode:
authorcperciva <cperciva@FreeBSD.org>2007-04-03 23:53:55 +0000
committercperciva <cperciva@FreeBSD.org>2007-04-03 23:53:55 +0000
commit65266e0a565f6ae26e3401daf1853ca31292e88d (patch)
tree000e7b3f6b583f760b73aa342c74a9ba82648b44 /lib/libarchive
parent836059f8b9165522248a9ba213ea4a5a799416f2 (diff)
downloadFreeBSD-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/libarchive')
-rw-r--r--lib/libarchive/archive_read_support_format_tar.c4
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;
OpenPOWER on IntegriCloud