From b178eb04d3406af1ec90641e1090caa7bbe831db Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Tue, 22 Feb 2011 08:49:21 -0800 Subject: [PATCH] Allow a failure of EINVAL to mean no ACLs are available. (If our POSIX types aren't valid, we can't handle the ACLs.) --- acls.c | 3 +++ lib/sysacls.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/acls.c b/acls.c index 87b6c80a..9fac3cd0 100644 --- a/acls.c +++ b/acls.c @@ -1101,6 +1101,9 @@ int default_perms_for_dir(const char *dir) if (sacl == NULL) { /* Couldn't get an ACL. Darn. */ switch (errno) { + case EINVAL: + /* If SMB_ACL_TYPE_DEFAULT isn't valid, then the ACLs must be non-POSIX. */ + break; #ifdef ENOTSUP case ENOTSUP: #endif diff --git a/lib/sysacls.c b/lib/sysacls.c index 19d4d7ad..52314bc1 100644 --- a/lib/sysacls.c +++ b/lib/sysacls.c @@ -2781,6 +2781,11 @@ int no_acl_syscall_error(int err) return 1; } #endif + if (err == EINVAL) { + /* If the type of SMB_ACL_TYPE_ACCESS or SMB_ACL_TYPE_DEFAULT + * isn't valid, then the ACLs must be non-POSIX. */ + return 1; + } return 0; } -- 2.34.1