From 5b4bc233bd812c580ddf938ca63dd492c99b80a6 Mon Sep 17 00:00:00 2001 From: Shawn Webb Date: Wed, 14 Oct 2020 12:51:49 -0400 Subject: [PATCH] HBSD: Ignore UFS shenanigans UFS stores NFSv4 ACLs in the system extended attribute namespace. Per libarchive maintainer, ignore those attributes. Signed-off-by: Shawn Webb --- libarchive/archive_read_disk_entry_from_file.c | 12 ++++++++---- libarchive/archive_write_disk_posix.c | 4 ++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c index 7395ee725..9c9cf38ee 100644 --- a/libarchive/archive_read_disk_entry_from_file.c +++ b/libarchive/archive_read_disk_entry_from_file.c @@ -765,11 +765,15 @@ setup_xattrs_namespace(struct archive_read_disk *a, size_t len = 255 & (int)*p; char *name; - switch (namespace) { - case EXTATTR_NAMESPACE_SYSTEM: + if (namespace == EXTATTR_NAMESPACE_SYSTEM) { + if (!strcmp(p + 1, "nfs4.acl") || + !strcmp(p + 1, "posix1e.acl_access") || + !strcmp(p + 1, "posix1e.acl_default")) { + p += 1 + len; + continue; + } strcpy(buff, "system."); - break; - default: + } else { strcpy(buff, "user."); } name = buff + strlen(buff); diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c index e522492fb..7e32fca92 100644 --- a/libarchive/archive_write_disk_posix.c +++ b/libarchive/archive_write_disk_posix.c @@ -4432,6 +4432,10 @@ set_xattrs(struct archive_write_disk *a) } else if (strncmp(name, "system.", 7) == 0) { name += 7; namespace = EXTATTR_NAMESPACE_SYSTEM; + if (!strcmp(name, "nfs4.acl") || + !strcmp(name, "posix1e.acl_access") || + !strcmp(name, "posix1e.acl_default")) + continue; } else { /* Other namespaces are unsupported */ archive_strcat(&errlist, name); -- 2.47.2