mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
cifs: set domainName when a domain-key is used in multiuser
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>
This commit is contained in:
committed by
Steve French
parent
a55aa89aab
commit
f2aee329a6
@@ -2981,6 +2981,7 @@ static int
|
|||||||
cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
|
cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
int is_domain = 0;
|
||||||
const char *delim, *payload;
|
const char *delim, *payload;
|
||||||
char *desc;
|
char *desc;
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
@@ -3028,6 +3029,7 @@ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
|
|||||||
rc = PTR_ERR(key);
|
rc = PTR_ERR(key);
|
||||||
goto out_err;
|
goto out_err;
|
||||||
}
|
}
|
||||||
|
is_domain = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
down_read(&key->sem);
|
down_read(&key->sem);
|
||||||
@@ -3085,6 +3087,26 @@ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
|
|||||||
goto out_key_put;
|
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:
|
out_key_put:
|
||||||
up_read(&key->sem);
|
up_read(&key->sem);
|
||||||
key_put(key);
|
key_put(key);
|
||||||
|
|||||||
Reference in New Issue
Block a user