Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3534b850 authored by Jeff Layton's avatar Jeff Layton Committed by Steve French
Browse files

cifs: throw a warning if negotiate or sess_setup ops are passed NULL server or session pointers



These look pretty cargo-culty to me, but let's be certain. Leave
them in place for now. Pop a WARN if it ever does happen. Also,
move to a more standard idiom for setting the "server" pointer.

Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
Reviewed-by: default avatarPavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 7d066459
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -375,16 +375,15 @@ CIFSSMBNegotiate(const unsigned int xid, struct cifs_ses *ses)
	int rc = 0;
	int bytes_returned;
	int i;
	struct TCP_Server_Info *server;
	struct TCP_Server_Info *server = ses->server;
	u16 count;
	unsigned int secFlags;

	if (ses->server)
		server = ses->server;
	else {
		rc = -EIO;
		return rc;
	if (!server) {
		WARN(1, "%s: server is NULL!\n", __func__);
		return -EIO;
	}

	rc = smb_init(SMB_COM_NEGOTIATE, 0, NULL /* no tcon yet */ ,
		      (void **) &pSMB, (void **) &pSMBr);
	if (rc)
+3 −1
Original line number Diff line number Diff line
@@ -576,8 +576,10 @@ CIFS_SessSetup(const unsigned int xid, struct cifs_ses *ses,
	u16 blob_len;
	char *ntlmsspblob = NULL;

	if (ses == NULL)
	if (ses == NULL) {
		WARN(1, "%s: ses == NULL!", __func__);
		return -EINVAL;
	}

	type = ses->server->secType;
	cifs_dbg(FYI, "sess setup type %d\n", type);
+8 −12
Original line number Diff line number Diff line
@@ -328,7 +328,7 @@ SMB2_negotiate(const unsigned int xid, struct cifs_ses *ses)
	struct kvec iov[1];
	int rc = 0;
	int resp_buftype;
	struct TCP_Server_Info *server;
	struct TCP_Server_Info *server = ses->server;
	unsigned int sec_flags;
	u16 temp = 0;
	int blob_offset, blob_length;
@@ -337,11 +337,9 @@ SMB2_negotiate(const unsigned int xid, struct cifs_ses *ses)

	cifs_dbg(FYI, "Negotiate protocol\n");

	if (ses->server)
		server = ses->server;
	else {
		rc = -EIO;
		return rc;
	if (!server) {
		WARN(1, "%s: server is NULL!\n", __func__);
		return -EIO;
	}

	rc = small_smb2_init(SMB2_NEGOTIATE, NULL, (void **) &req);
@@ -480,7 +478,7 @@ SMB2_sess_setup(const unsigned int xid, struct cifs_ses *ses,
	int rc = 0;
	int resp_buftype;
	__le32 phase = NtLmNegotiate; /* NTLMSSP, if needed, is multistage */
	struct TCP_Server_Info *server;
	struct TCP_Server_Info *server = ses->server;
	unsigned int sec_flags;
	u8 temp = 0;
	u16 blob_length = 0;
@@ -490,11 +488,9 @@ SMB2_sess_setup(const unsigned int xid, struct cifs_ses *ses,

	cifs_dbg(FYI, "Session Setup\n");

	if (ses->server)
		server = ses->server;
	else {
		rc = -EIO;
		return rc;
	if (!server) {
		WARN(1, "%s: server is NULL!\n", __func__);
		return -EIO;
	}

	/*