diff options
author | Steve French <sfrench@us.ibm.com> | 2007-11-25 10:01:00 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-11-25 10:01:00 +0000 |
commit | 2b83457bded19cb57c5bdd59ebe16fe1a919c088 (patch) | |
tree | 895ca899567b0ca76c97691af60927ee42d3f338 /fs/cifs | |
parent | 058250a0d5886b4d96a195ecc7e3a75e2df5e4b1 (diff) | |
download | linux-stable-2b83457bded19cb57c5bdd59ebe16fe1a919c088.tar.gz linux-stable-2b83457bded19cb57c5bdd59ebe16fe1a919c088.tar.bz2 linux-stable-2b83457bded19cb57c5bdd59ebe16fe1a919c088.zip |
[CIFS] Fix check after use error in ACL code
Spotted by the coverity scanner.
CC: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/cifsacl.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c index dabbce00712b..f02fdef463a7 100644 --- a/fs/cifs/cifsacl.c +++ b/fs/cifs/cifsacl.c @@ -269,6 +269,13 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl, /* BB need to add parm so we can store the SID BB */ + if (!pdacl) { + /* no DACL in the security descriptor, set + all the permissions for user/group/other */ + inode->i_mode |= S_IRWXUGO; + return; + } + /* validate that we do not go past end of acl */ if (end_of_acl < (char *)pdacl + le16_to_cpu(pdacl->size)) { cERROR(1, ("ACL too small to parse DACL")); @@ -286,12 +293,6 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl, user/group/other have no permissions */ inode->i_mode &= ~(S_IRWXUGO); - if (!pdacl) { - /* no DACL in the security descriptor, set - all the permissions for user/group/other */ - inode->i_mode |= S_IRWXUGO; - return; - } acl_base = (char *)pdacl; acl_size = sizeof(struct cifs_acl); |