OSDN Git Service

smb3: Update POSIX negotiate context with POSIX ctxt GUID
authorSteve French <stfrench@microsoft.com>
Sun, 24 Feb 2019 23:56:33 +0000 (17:56 -0600)
committerSteve French <stfrench@microsoft.com>
Wed, 6 Mar 2019 00:10:04 +0000 (18:10 -0600)
POSIX negotiate context now includes the GUID specifying
which POSIX open context we support.

Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
fs/cifs/smb2pdu.c
fs/cifs/smb2pdu.h

index 49c2843..64e1726 100644 (file)
@@ -490,6 +490,23 @@ build_posix_ctxt(struct smb2_posix_neg_context *pneg_ctxt)
 {
        pneg_ctxt->ContextType = SMB2_POSIX_EXTENSIONS_AVAILABLE;
        pneg_ctxt->DataLength = cpu_to_le16(POSIX_CTXT_DATA_LEN);
+       /* SMB2_CREATE_TAG_POSIX is "0x93AD25509CB411E7B42383DE968BCD7C" */
+       pneg_ctxt->Name[0] = 0x93;
+       pneg_ctxt->Name[1] = 0xAD;
+       pneg_ctxt->Name[2] = 0x25;
+       pneg_ctxt->Name[3] = 0x50;
+       pneg_ctxt->Name[4] = 0x9C;
+       pneg_ctxt->Name[5] = 0xB4;
+       pneg_ctxt->Name[6] = 0x11;
+       pneg_ctxt->Name[7] = 0xE7;
+       pneg_ctxt->Name[8] = 0xB4;
+       pneg_ctxt->Name[9] = 0x23;
+       pneg_ctxt->Name[10] = 0x83;
+       pneg_ctxt->Name[11] = 0xDE;
+       pneg_ctxt->Name[12] = 0x96;
+       pneg_ctxt->Name[13] = 0x8B;
+       pneg_ctxt->Name[14] = 0xCD;
+       pneg_ctxt->Name[15] = 0x7C;
 }
 
 static void
index 538e229..0bd4d48 100644 (file)
@@ -288,12 +288,12 @@ struct smb2_encryption_neg_context {
        __le16  Ciphers[1]; /* Ciphers[0] since only one used now */
 } __packed;
 
-#define POSIX_CTXT_DATA_LEN    8
+#define POSIX_CTXT_DATA_LEN    16
 struct smb2_posix_neg_context {
        __le16  ContextType; /* 0x100 */
        __le16  DataLength;
        __le32  Reserved;
-       __le64  Reserved1; /* In case needed for future (eg version or caps) */
+       __u8    Name[16]; /* POSIX ctxt GUID 93AD25509CB411E7B42383DE968BCD7C */
 } __packed;
 
 struct smb2_negotiate_rsp {