cifsd: Fix potential null-ptr-deref in smb2_open()
authorMarios Makassikis <mmakassikis@freebox.fr>
Thu, 15 Apr 2021 01:24:56 +0000 (10:24 +0900)
committerSteve French <stfrench@microsoft.com>
Tue, 11 May 2021 00:15:43 +0000 (19:15 -0500)
Fix potential null-ptr-deref in smb2_open().

Signed-off-by: Marios Makassikis <mmakassikis@freebox.fr>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifsd/smb2pdu.c

index 1ff0b20..ba552b8 100644 (file)
@@ -2918,13 +2918,16 @@ int smb2_open(struct ksmbd_work *work)
                                        fattr.cf_gid = inode->i_gid;
                                        fattr.cf_mode = inode->i_mode;
                                        fattr.cf_dacls = NULL;
+                                       ace_num = 0;
 
                                        fattr.cf_acls = ksmbd_vfs_get_acl(inode, ACL_TYPE_ACCESS);
-                                       ace_num = fattr.cf_acls->a_count;
+                                       if (fattr.cf_acls)
+                                               ace_num = fattr.cf_acls->a_count;
                                        if (S_ISDIR(inode->i_mode)) {
                                                fattr.cf_dacls =
                                                        ksmbd_vfs_get_acl(inode, ACL_TYPE_DEFAULT);
-                                               ace_num += fattr.cf_dacls->a_count;
+                                               if (fattr.cf_dacls)
+                                                       ace_num += fattr.cf_dacls->a_count;
                                        }
 
                                        pntsd = kmalloc(sizeof(struct smb_ntsd) +