aboutsummaryrefslogtreecommitdiffstats
path: root/libarchive/archive_read_disk_entry_from_file.c
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2017-04-03 11:46:32 +0000
committerMartin Matuska <mm@FreeBSD.org>2017-04-03 11:46:32 +0000
commit838c5c42c203c680c01b759d324976dc68e6199b (patch)
tree6d170c88fe51a75631b055c6785d1f842b51b881 /libarchive/archive_read_disk_entry_from_file.c
parentcae1856f6278052550bd790a20d4ae9df0ed3158 (diff)
downloadsrc-838c5c42c203c680c01b759d324976dc68e6199b.tar.gz
src-838c5c42c203c680c01b759d324976dc68e6199b.zip
Update vendor/libarchive to git e9eef34719c4bc8cfa2e3cc568eae7afe763a2c3
Vendor changes (FreeBSD-related): Report which extended attributes could not be restored Update archive_read_disk.3 and archive_write_disk.3 manual pages
Notes
Notes: svn path=/vendor/libarchive/dist/; revision=316454
Diffstat (limited to 'libarchive/archive_read_disk_entry_from_file.c')
-rw-r--r--libarchive/archive_read_disk_entry_from_file.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c
index 9d845fa0ef93..700f9e3ae1af 100644
--- a/libarchive/archive_read_disk_entry_from_file.c
+++ b/libarchive/archive_read_disk_entry_from_file.c
@@ -613,9 +613,21 @@ setup_xattrs(struct archive_read_disk *a,
}
for (p = list; (p - list) < list_size; p += strlen(p) + 1) {
- if (strncmp(p, "system.", 7) == 0 ||
- strncmp(p, "xfsroot.", 8) == 0)
+#if ARCHIVE_XATTR_LINUX
+ /* Linux: skip POSIX.1e ACL extended attributes */
+ if (strncmp(p, "system.", 7) == 0 &&
+ (strcmp(p + 7, "posix_acl_access") == 0 ||
+ strcmp(p + 7, "posix_acl_default") == 0))
+ continue;
+ if (strncmp(p, "trusted.SGI_", 12) == 0 &&
+ (strcmp(p + 12, "ACL_DEFAULT") == 0 ||
+ strcmp(p + 12, "ACL_FILE") == 0))
continue;
+
+ /* Linux: xfsroot namespace is obsolete and unsupported */
+ if (strncmp(p, "xfsroot.", 8) == 0)
+ continue;
+#endif
setup_xattr(a, entry, p, *fd, path);
}