[PATCH] cifs: Fix uninitialized variable in set_chmod_dacl()
Dan Carpenter
dan.carpenter at oracle.com
Mon Dec 14 11:56:04 UTC 2020
Initialize the "nmode" variable earlier to prevent an uninitialized
variable bug when we do "size += setup_special_mode_ACE(pntace, nmode);"
Fixes: 253374f7557e ("cifs: Fix unix perm bits to cifsacl conversion for "other" bits.")
Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
---
fs/cifs/cifsacl.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c
index d7a6d0f533bf..8410db328e5e 100644
--- a/fs/cifs/cifsacl.c
+++ b/fs/cifs/cifsacl.c
@@ -920,6 +920,13 @@ static int set_chmod_dacl(struct cifs_acl *pndacl, struct cifs_sid *pownersid,
__u64 deny_group_mode = 0;
bool sticky_set = false;
+ /*
+ * We'll try to keep the mode as requested by the user.
+ * But in cases where we cannot meaningfully convert that
+ * into ACL, return back the updated mode, so that it is
+ * updated in the inode.
+ */
+ nmode = *pnmode;
pnndacl = (struct cifs_acl *)((char *)pndacl + sizeof(struct cifs_acl));
if (modefromsid) {
@@ -931,14 +938,6 @@ static int set_chmod_dacl(struct cifs_acl *pndacl, struct cifs_sid *pownersid,
goto set_size;
}
- /*
- * We'll try to keep the mode as requested by the user.
- * But in cases where we cannot meaningfully convert that
- * into ACL, return back the updated mode, so that it is
- * updated in the inode.
- */
- nmode = *pnmode;
-
if (!memcmp(pownersid, pgrpsid, sizeof(struct cifs_sid))) {
/*
* Case when owner and group SIDs are the same.
--
2.29.2
More information about the samba-technical
mailing list