linux-cifs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tom Talpey <tom@talpey.com>
To: Pavel Shilovsky <piastryyy@gmail.com>, Steve French <smfrench@gmail.com>
Cc: CIFS <linux-cifs@vger.kernel.org>
Subject: Re: [PATCH][SMB3.1.1] remove confusing mount warning when no SPNEGO info on negprot rsp
Date: Wed, 9 Dec 2020 16:26:13 -0500	[thread overview]
Message-ID: <c885d7a2-4f41-d2c0-51ae-43e8ef9cc2d6@talpey.com> (raw)
In-Reply-To: <CAKywueRMTMy7shp_qT3Cu6E1EZ0AwdSvjsWF=MU4KQWkw+YL-A@mail.gmail.com>

The protocol allows omitting the SPNEGO blob altogether, btw. That
leads to the client deciding how to authenticate, although the Windows
server doesn't offer that.

So I'd suggest removing the comment, too:

 >> /* Make sure that negotiate contexts start after gss security blob */


On 12/9/2020 12:39 PM, Pavel Shilovsky wrote:
> Looks good.
> 
> Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
> 
> --
> Best regards,
> Pavel Shilovsky
> 
> вт, 8 дек. 2020 г. в 23:23, Steve French <smfrench@gmail.com>:
>>
>> Azure does not send an SPNEGO blob in the negotiate protocol response,
>> so we shouldn't assume that it is there when validating the location
>> of the first negotiate context.  This avoids the potential confusing
>> mount warning:
>>
>>     CIFS: Invalid negotiate context offset
>>
>> CC: Stable <stable@vger.kernel.org>
>> Signed-off-by: Steve French <stfrench@microsoft.com>
>> ---
>>   fs/cifs/smb2misc.c | 11 +++++++----
>>   1 file changed, 7 insertions(+), 4 deletions(-)
>>
>> diff --git a/fs/cifs/smb2misc.c b/fs/cifs/smb2misc.c
>> index d88e2683626e..513507e4c4ad 100644
>> --- a/fs/cifs/smb2misc.c
>> +++ b/fs/cifs/smb2misc.c
>> @@ -109,11 +109,14 @@ static __u32 get_neg_ctxt_len(struct
>> smb2_sync_hdr *hdr, __u32 len,
>>
>>    /* Make sure that negotiate contexts start after gss security blob */
>>    nc_offset = le32_to_cpu(pneg_rsp->NegotiateContextOffset);
>> - if (nc_offset < non_ctxlen) {
>> - pr_warn_once("Invalid negotiate context offset\n");
>> + if (nc_offset + 1 < non_ctxlen) {
>> + pr_warn_once("Invalid negotiate context offset %d\n", nc_offset);
>>    return 0;
>> - }
>> - size_of_pad_before_neg_ctxts = nc_offset - non_ctxlen;
>> + } else if (nc_offset + 1 == non_ctxlen) {
>> + cifs_dbg(FYI, "no SPNEGO security blob in negprot rsp\n");
>> + size_of_pad_before_neg_ctxts = 0;
>> + } else
>> + size_of_pad_before_neg_ctxts = nc_offset - non_ctxlen;
>>
>>    /* Verify that at least minimal negotiate contexts fit within frame */
>>    if (len < nc_offset + (neg_count * sizeof(struct smb2_neg_context))) {
>>
>> --
>> Thanks,
>>
>> Steve
> 

  reply	other threads:[~2020-12-09 21:27 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-09  7:23 [PATCH][SMB3.1.1] remove confusing mount warning when no SPNEGO info on negprot rsp Steve French
2020-12-09 17:39 ` Pavel Shilovsky
2020-12-09 21:26   ` Tom Talpey [this message]
2020-12-09 22:49     ` Steve French
2020-12-10  0:58       ` Tom Talpey
2020-12-10  3:31         ` Steve French
2020-12-10 17:45 ` Pavel Shilovsky
2020-12-11 18:37   ` Pavel Shilovsky
2020-12-11 21:48     ` Steve French

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c885d7a2-4f41-d2c0-51ae-43e8ef9cc2d6@talpey.com \
    --to=tom@talpey.com \
    --cc=linux-cifs@vger.kernel.org \
    --cc=piastryyy@gmail.com \
    --cc=smfrench@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).