UFS stores NFSv4 ACLs in the system extended attribute namespace. Per
libarchive maintainer, ignore those attributes.
Signed-off-by: Shawn Webb <shawn.webb@hardenedbsd.org>
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);
} 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);