]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
SMB3.1.1: update comments clarifying SPNEGO info in negprot response
authorSteve French <stfrench@microsoft.com>
Thu, 10 Dec 2020 03:25:13 +0000 (21:25 -0600)
committerSteve French <stfrench@microsoft.com>
Mon, 14 Dec 2020 01:12:07 +0000 (19:12 -0600)
Trivial changes to clarify confusing comment about
SPNEGO blog (and also one length comparisons in negotiate
context parsing).

Suggested-by: Tom Talpey <tom@talpey.com>
Suggested-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/smb2misc.c

index 2da6b41cb5526a37d6df881b518f5c7cbb0f69c8..c2c5e4122a0459ead93f73ae84f0e0a9d4a2f39a 100644 (file)
@@ -109,8 +109,17 @@ static __u32 get_neg_ctxt_len(struct smb2_sync_hdr *hdr, __u32 len,
           (pneg_rsp->DialectRevision != cpu_to_le16(SMB311_PROT_ID)))
                return 0;
 
-       /* Make sure that negotiate contexts start after gss security blob */
+       /*
+        * if SPNEGO blob present (ie the RFC2478 GSS info which indicates
+        * which security mechanisms the server supports) make sure that
+        * the negotiate contexts start after it
+        */
        nc_offset = le32_to_cpu(pneg_rsp->NegotiateContextOffset);
+       /*
+        * non_ctxlen is at least shdr->StructureSize + pdu->StructureSize2
+        * and the latter is 1 byte bigger than the fix-sized area of the
+        * NEGOTIATE response
+        */
        if (nc_offset + 1 < non_ctxlen) {
                pr_warn_once("Invalid negotiate context offset %d\n", nc_offset);
                return 0;