lkml.org 
[lkml]   [2019]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 35/59] cifs: set domainName when a domain-key is used in multiuser
    Date
    From: Ronnie Sahlberg <lsahlber@redhat.com>

    [ Upstream commit f2aee329a68f5a907bcff11a109dfe17c0b41aeb ]

    RHBZ: 1710429

    When we use a domain-key to authenticate using multiuser we must also set
    the domainnmame for the new volume as it will be used and passed to the server
    in the NTLMSSP Domain-name.

    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/cifs/connect.c | 22 ++++++++++++++++++++++
    1 file changed, 22 insertions(+)

    diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
    index 57c62ff4e8d6d..699e763ea671a 100644
    --- a/fs/cifs/connect.c
    +++ b/fs/cifs/connect.c
    @@ -2542,6 +2542,7 @@ static int
    cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
    {
    int rc = 0;
    + int is_domain = 0;
    const char *delim, *payload;
    char *desc;
    ssize_t len;
    @@ -2589,6 +2590,7 @@ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
    rc = PTR_ERR(key);
    goto out_err;
    }
    + is_domain = 1;
    }

    down_read(&key->sem);
    @@ -2646,6 +2648,26 @@ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
    goto out_key_put;
    }

    + /*
    + * If we have a domain key then we must set the domainName in the
    + * for the request.
    + */
    + if (is_domain && ses->domainName) {
    + vol->domainname = kstrndup(ses->domainName,
    + strlen(ses->domainName),
    + GFP_KERNEL);
    + if (!vol->domainname) {
    + cifs_dbg(FYI, "Unable to allocate %zd bytes for "
    + "domain\n", len);
    + rc = -ENOMEM;
    + kfree(vol->username);
    + vol->username = NULL;
    + kfree(vol->password);
    + vol->password = NULL;
    + goto out_key_put;
    + }
    + }
    +
    out_key_put:
    up_read(&key->sem);
    key_put(key);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-09-20 00:18    [W:4.098 / U:0.404 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site