diff options
-rw-r--r-- | source3/smbd/posix_acls.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/source3/smbd/posix_acls.c b/source3/smbd/posix_acls.c index b8e0d4aba4..bca5304eff 100644 --- a/source3/smbd/posix_acls.c +++ b/source3/smbd/posix_acls.c @@ -1431,10 +1431,11 @@ static bool ensure_canon_entry_valid_on_set(connection_struct *conn, for (pace = *pp_ace; pace; pace = pace->next) { if (pace->type == SMB_ACL_USER_OBJ) { - - if (!is_default_acl) { - apply_default_perms(params, is_directory, pace, S_IRUSR); - } + /* + * Ensure we have default parameters for the + * user (owner) even on default ACLs. + */ + apply_default_perms(params, is_directory, pace, S_IRUSR); pace_user = pace; } else if (pace->type == SMB_ACL_GROUP_OBJ) { @@ -1515,9 +1516,11 @@ static bool ensure_canon_entry_valid_on_set(connection_struct *conn, pace->perms = pace_other->perms; } - if (!is_default_acl) { - apply_default_perms(params, is_directory, pace, S_IRUSR); - } + /* + * Ensure we have default parameters for the + * user (owner) even on default ACLs. + */ + apply_default_perms(params, is_directory, pace, S_IRUSR); DLIST_ADD(*pp_ace, pace); pace_user = pace; |