mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 04:42:12 +00:00
CIFS: Only send SMB2_NEGOTIATE command on new TCP connections
Do not allow commands other than SMB2_NEGOTIATE to be sent over recently established TCP connections. Return -EAGAIN to let upper layers handle it properly. Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
6dfbd84684
commit
2084ed5716
@ -619,6 +619,10 @@ smb2_get_mid_entry(struct cifs_ses *ses, struct smb2_sync_hdr *shdr,
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
if (ses->server->tcpStatus == CifsNeedNegotiate &&
|
||||
shdr->Command != SMB2_NEGOTIATE)
|
||||
return -EAGAIN;
|
||||
|
||||
if (ses->status == CifsNew) {
|
||||
if ((shdr->Command != SMB2_SESSION_SETUP) &&
|
||||
(shdr->Command != SMB2_NEGOTIATE))
|
||||
@ -702,6 +706,10 @@ smb2_setup_async_request(struct TCP_Server_Info *server, struct smb_rqst *rqst)
|
||||
(struct smb2_sync_hdr *)rqst->rq_iov[0].iov_base;
|
||||
struct mid_q_entry *mid;
|
||||
|
||||
if (server->tcpStatus == CifsNeedNegotiate &&
|
||||
shdr->Command != SMB2_NEGOTIATE)
|
||||
return ERR_PTR(-EAGAIN);
|
||||
|
||||
smb2_seq_num_into_buf(server, shdr);
|
||||
|
||||
mid = smb2_mid_entry_alloc(shdr, server);
|
||||
|
Loading…
Reference in New Issue
Block a user