From: Steve French <smfre...@gmail.com>

3.12-stable review patch.  If anyone has any objections, please let me know.

===============

commit 3c5f9be108783c05cade918d29c8711b236acb1d upstream.

ClientGUID must be zero for SMB2.02 dialect.  See section 2.2.3
of MS-SMB2. For SMB2.1 and later it must be non-zero.

Signed-off-by: Steve French <smfre...@gmail.com>
CC: Sachin Prabhu <spra...@redhat.com>
Signed-off-by: Jiri Slaby <jsl...@suse.cz>
---
 fs/cifs/smb2pdu.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
index 37de258d9a34..5818d2ca66f1 100644
--- a/fs/cifs/smb2pdu.c
+++ b/fs/cifs/smb2pdu.c
@@ -375,7 +375,12 @@ SMB2_negotiate(const unsigned int xid, struct cifs_ses 
*ses)
 
        req->Capabilities = cpu_to_le32(ses->server->vals->req_capabilities);
 
-       memcpy(req->ClientGUID, server->client_guid, SMB2_CLIENT_GUID_SIZE);
+       /* ClientGUID must be zero for SMB2.02 dialect */
+       if (ses->server->vals->protocol_id == SMB20_PROT_ID)
+               memset(req->ClientGUID, 0, SMB2_CLIENT_GUID_SIZE);
+       else
+               memcpy(req->ClientGUID, server->client_guid,
+                       SMB2_CLIENT_GUID_SIZE);
 
        iov[0].iov_base = (char *)req;
        /* 4 for rfc1002 length field */
-- 
2.0.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to