aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/fs/cifsd/smb2pdu.c
diff options
context:
space:
mode:
authorMarios Makassikis <mmakassikis@freebox.fr>2021-04-15 10:24:56 +0900
committerSteve French <stfrench@microsoft.com>2021-05-10 19:15:43 -0500
commite6b1059ffaeac794bf1a76fd35947c7c6ac4cb57 (patch)
treea0e3832b7c68f39b16f5c6e72905c81c78a0c7b0 /fs/cifsd/smb2pdu.c
parentcifsd: move nt time functions to misc.c (diff)
downloadwireguard-linux-e6b1059ffaeac794bf1a76fd35947c7c6ac4cb57.tar.xz
wireguard-linux-e6b1059ffaeac794bf1a76fd35947c7c6ac4cb57.zip
cifsd: Fix potential null-ptr-deref in smb2_open()
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>
Diffstat (limited to '')
-rw-r--r--fs/cifsd/smb2pdu.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/cifsd/smb2pdu.c b/fs/cifsd/smb2pdu.c
index 1ff0b20ff7b8..ba552b8f2127 100644
--- a/fs/cifsd/smb2pdu.c
+++ b/fs/cifsd/smb2pdu.c
@@ -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) +