diff options
author | Steve French <sfrench@us.ibm.com> | 2007-11-25 11:01:00 +0100 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-11-25 11:01:00 +0100 |
commit | 2b83457bded19cb57c5bdd59ebe16fe1a919c088 (patch) | |
tree | 895ca899567b0ca76c97691af60927ee42d3f338 /fs/cifs | |
parent | Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6 (diff) | |
download | linux-2b83457bded19cb57c5bdd59ebe16fe1a919c088.tar.xz linux-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); |