Re: [PATCH] cifs: Add client version details to NTLM authenticate message

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 4, 2023 at 10:44 PM Steve French <smfrench@xxxxxxxxx> wrote:
>
> tentatively merged into cifs-2.6.git for-next pending review/testing
>
> On Wed, Oct 4, 2023 at 6:18 AM <meetakshisetiyaoss@xxxxxxxxx> wrote:
> >
> > From: Meetakshi Setiya <msetiya@xxxxxxxxxxxxx>
> >
> > The NTLM authenticate message currently sets the NTLMSSP_NEGOTIATE_VERSION
> > flag but does not populate the VERSION structure. This commit fixes this
> > bug by ensuring that the flag is set and the version details are included
> > in the message.
> >
> > Signed-off-by: Meetakshi Setiya <msetiya@xxxxxxxxxxxxx>
> > ---
> >  fs/smb/client/ntlmssp.h |  4 ++--
> >  fs/smb/client/sess.c    | 12 +++++++++---
> >  2 files changed, 11 insertions(+), 5 deletions(-)
> >
> > diff --git a/fs/smb/client/ntlmssp.h b/fs/smb/client/ntlmssp.h
> > index 2c5dde2ece58..875de43b72de 100644
> > --- a/fs/smb/client/ntlmssp.h
> > +++ b/fs/smb/client/ntlmssp.h
> > @@ -133,8 +133,8 @@ typedef struct _AUTHENTICATE_MESSAGE {
> >         SECURITY_BUFFER WorkstationName;
> >         SECURITY_BUFFER SessionKey;
> >         __le32 NegotiateFlags;
> > -       /* SECURITY_BUFFER for version info not present since we
> > -          do not set the version is present flag */
> > +       struct  ntlmssp_version Version;
> > +       /* SECURITY_BUFFER */
> >         char UserString[];
> >  } __attribute__((packed)) AUTHENTICATE_MESSAGE, *PAUTHENTICATE_MESSAGE;
> >
> > diff --git a/fs/smb/client/sess.c b/fs/smb/client/sess.c
> > index 79f26c560edf..919ace2d13d4 100644
> > --- a/fs/smb/client/sess.c
> > +++ b/fs/smb/client/sess.c
> > @@ -1060,10 +1060,16 @@ int build_ntlmssp_auth_blob(unsigned char **pbuffer,
> >         memcpy(sec_blob->Signature, NTLMSSP_SIGNATURE, 8);
> >         sec_blob->MessageType = NtLmAuthenticate;
> >
> > +       /* send version information in ntlmssp authenticate also */
> >         flags = ses->ntlmssp->server_flags | NTLMSSP_REQUEST_TARGET |
> > -               NTLMSSP_NEGOTIATE_TARGET_INFO | NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED;
> > -       /* we only send version information in ntlmssp negotiate, so do not set this flag */
> > -       flags = flags & ~NTLMSSP_NEGOTIATE_VERSION;
> > +               NTLMSSP_NEGOTIATE_TARGET_INFO | NTLMSSP_NEGOTIATE_VERSION |
> > +               NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED;
> > +
> > +       sec_blob->Version.ProductMajorVersion = LINUX_VERSION_MAJOR;
> > +       sec_blob->Version.ProductMinorVersion = LINUX_VERSION_PATCHLEVEL;
> > +       sec_blob->Version.ProductBuild = cpu_to_le16(SMB3_PRODUCT_BUILD);
> > +       sec_blob->Version.NTLMRevisionCurrent = NTLMSSP_REVISION_W2K3;
> > +
> >         tmp = *pbuffer + sizeof(AUTHENTICATE_MESSAGE);
> >         sec_blob->NegotiateFlags = cpu_to_le32(flags);
> >
> > --
> > 2.39.2
> >
>
>
> --
> Thanks,
>
> Steve

Looks good to me.
Reviewed-by: Shyam Prasad N <sprasad@xxxxxxxxxxxxx>

-- 
Regards,
Shyam




[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux