]> err.no Git - linux-2.6/commitdiff
[CIFS] Fix check after use error in ACL code
authorSteve French <sfrench@us.ibm.com>
Sun, 25 Nov 2007 10:01:00 +0000 (10:01 +0000)
committerSteve French <sfrench@us.ibm.com>
Sun, 25 Nov 2007 10:01:00 +0000 (10:01 +0000)
Spotted by the coverity scanner.

CC: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/cifsacl.c

index dabbce00712b0f23e02e5bfe46e5696850791e1f..f02fdef463a7f24c940d69e0067a49b947927efb 100644 (file)
@@ -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);