a bit closer together: Move the lp_inherit_perms() check into the callers.
Volker
}
/* Inherit the ACL if the file was created. */
- if ((local_flags & O_CREAT) && !file_existed) {
+ if ((local_flags & O_CREAT)
+ && !file_existed
+ && lp_inherit_perms(SNUM(conn))) {
inherit_access_acl(conn, fname, unx_mode);
}
}
/****************************************************************************
- If "inherit permissions" is set and the parent directory has no default
- ACL but it does have an Access ACL, inherit this Access ACL to file name.
+ If the parent directory has no default ACL but it does have an Access ACL,
+ inherit this Access ACL to file name.
****************************************************************************/
int inherit_access_acl(connection_struct *conn, const char *name, mode_t mode)
pstring dirname;
pstrcpy(dirname, parent_dirname(name));
- if (!lp_inherit_perms(SNUM(conn)) || directory_has_default_acl(conn, dirname))
+ if (directory_has_default_acl(conn, dirname))
return 0;
return copy_access_acl(conn, dirname, name, mode);
if (SMB_VFS_MKNOD(conn,fname, unixmode, dev) != 0)
return(UNIXERROR(ERRDOS,ERRnoaccess));
- inherit_access_acl(conn, fname, unixmode);
+ if (lp_inherit_perms(SNUM(conn))) {
+ inherit_access_acl(conn, fname,
+ unixmode);
+ }
SSVAL(params,0,0);
send_trans2_replies(outbuf, bufsize, params, 2, *ppdata, 0, max_data_bytes);
return ret;
}
- inherit_access_acl(conn, name, mode);
+ if (lp_inherit_perms(SNUM(conn))) {
+ inherit_access_acl(conn, name, mode);
+ }
/*
* Check if high bits should have been set,