Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cifs: smb2pdu: Fix potential NULL pointer dereference

tcon->ses is being dereferenced before it is null checked, hence
there is a potential null pointer dereference.

Fix this by moving the pointer dereference after tcon->ses has
been properly null checked.

Addresses-Coverity-ID: 1467426 ("Dereference before null check")
Fixes: 93012bf98416 ("cifs: add server->vals->header_preamble_size")
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>

authored by

Gustavo A. R. Silva and committed by
Steve French
c0953f2e 8837c70d

+3 -1
+3 -1
fs/cifs/smb2pdu.c
··· 3454 3454 build_qfs_info_req(struct kvec *iov, struct cifs_tcon *tcon, int level, 3455 3455 int outbuf_len, u64 persistent_fid, u64 volatile_fid) 3456 3456 { 3457 - struct TCP_Server_Info *server = tcon->ses->server; 3457 + struct TCP_Server_Info *server; 3458 3458 int rc; 3459 3459 struct smb2_query_info_req *req; 3460 3460 unsigned int total_len; ··· 3463 3463 3464 3464 if ((tcon->ses == NULL) || (tcon->ses->server == NULL)) 3465 3465 return -EIO; 3466 + 3467 + server = tcon->ses->server; 3466 3468 3467 3469 rc = smb2_plain_req_init(SMB2_QUERY_INFO, tcon, (void **) &req, 3468 3470 &total_len);