mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
smb: client: refactor ACL setting control flow in id_mode_to_cifs_acl()
Refactor the control flow in id_mode_to_cifs_acl() to reduce nesting and prevent error code overwriting. Instead of wrapping the call to ops->set_acl() in a conditional block, introduce early exits (goto id_mode_to_cifs_acl_exit) when build_sec_desc() fails or ops->set_acl is NULL. This ensures that any actual error returned by build_sec_desc() is not overwritten with -EOPNOTSUPP. Signed-off-by: Ralph Boehme <slow@samba.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
9647492b5e
commit
a540a64c48
|
|
@ -1834,14 +1834,18 @@ id_mode_to_cifs_acl(struct inode *inode, const char *path, __u64 *pnmode,
|
|||
|
||||
cifs_dbg(NOISY, "build_sec_desc rc: %d\n", rc);
|
||||
|
||||
if (ops->set_acl == NULL)
|
||||
rc = -EOPNOTSUPP;
|
||||
if (rc != 0)
|
||||
goto id_mode_to_cifs_acl_exit;
|
||||
|
||||
if (!rc) {
|
||||
/* Set the security descriptor */
|
||||
rc = ops->set_acl(pnntsd, nsecdesclen, inode, path, aclflag);
|
||||
cifs_dbg(NOISY, "set_cifs_acl rc: %d\n", rc);
|
||||
if (ops->set_acl == NULL) {
|
||||
rc = -EOPNOTSUPP;
|
||||
goto id_mode_to_cifs_acl_exit;
|
||||
}
|
||||
|
||||
/* Set the security descriptor */
|
||||
rc = ops->set_acl(pnntsd, nsecdesclen, inode, path, aclflag);
|
||||
cifs_dbg(NOISY, "set_cifs_acl rc: %d\n", rc);
|
||||
|
||||
id_mode_to_cifs_acl_exit:
|
||||
cifs_put_tlink(tlink);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user