1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

s3: modules: vfs_default: Remove CHMOD_ACL in mkdir.

Now I understand the use of the mask in POSIX ACLs
this extra step is no longer needed. If the mkdir
succeeded it's already set the correct mode.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
This commit is contained in:
Jeremy Allison 2018-05-17 11:03:53 -07:00
parent aaed6b4e99
commit 90117f25bf

View File

@ -498,7 +498,6 @@ static int vfswrap_mkdir(vfs_handle_struct *handle,
mode_t mode)
{
int result;
bool has_dacl = False;
const char *path = smb_fname->base_name;
char *parent = NULL;
@ -506,7 +505,7 @@ static int vfswrap_mkdir(vfs_handle_struct *handle,
if (lp_inherit_acls(SNUM(handle->conn))
&& parent_dirname(talloc_tos(), path, &parent, NULL)
&& (has_dacl = directory_has_default_acl(handle->conn, parent))) {
&& directory_has_default_acl(handle->conn, parent)) {
mode = (0777 & lp_directory_mask(SNUM(handle->conn)));
}
@ -514,21 +513,6 @@ static int vfswrap_mkdir(vfs_handle_struct *handle,
result = mkdir(path, mode);
if (result == 0 && !has_dacl) {
/*
* We need to do this as the default behavior of POSIX ACLs
* is to set the mask to be the requested group permission
* bits, not the group permission bits to be the requested
* group permission bits. This is not what we want, as it will
* mess up any inherited ACL bits that were set. JRA.
*/
int saved_errno = errno; /* We may get ENOSYS */
if ((SMB_VFS_CHMOD_ACL(handle->conn, smb_fname, mode) == -1) &&
(errno == ENOSYS)) {
errno = saved_errno;
}
}
END_PROFILE(syscall_mkdir);
return result;
}