From: Shawn Webb Date: Wed, 14 Oct 2020 16:51:49 +0000 (-0400) Subject: HBSD: Ignore UFS shenanigans X-Git-Tag: v3.5.0~12^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1409%2Fhead;p=thirdparty%2Flibarchive.git 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 --- 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);