SMB311: Fix reconnect
The preauth hash was not being recalculated properly on reconnect
of SMB3.11 dialect mounts (which caused access denied repeatedly
on auto-reconnect).
Fixes: 8bd68c6e47
("CIFS: implement v3.11 preauth integrity")
Signed-off-by: Steve French <smfrench@gmail.com>
CC: Stable <stable@vger.kernel.org>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
This commit is contained in:
Родитель
23657ad730
Коммит
0d5ec281c0
|
@ -753,7 +753,7 @@ cifs_send_recv(const unsigned int xid, struct cifs_ses *ses,
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
#ifdef CONFIG_CIFS_SMB311
|
#ifdef CONFIG_CIFS_SMB311
|
||||||
if (ses->status == CifsNew)
|
if ((ses->status == CifsNew) || (optype & CIFS_NEG_OP))
|
||||||
smb311_update_preauth_hash(ses, rqst->rq_iov+1,
|
smb311_update_preauth_hash(ses, rqst->rq_iov+1,
|
||||||
rqst->rq_nvec-1);
|
rqst->rq_nvec-1);
|
||||||
#endif
|
#endif
|
||||||
|
@ -798,7 +798,7 @@ cifs_send_recv(const unsigned int xid, struct cifs_ses *ses,
|
||||||
*resp_buf_type = CIFS_SMALL_BUFFER;
|
*resp_buf_type = CIFS_SMALL_BUFFER;
|
||||||
|
|
||||||
#ifdef CONFIG_CIFS_SMB311
|
#ifdef CONFIG_CIFS_SMB311
|
||||||
if (ses->status == CifsNew) {
|
if ((ses->status == CifsNew) || (optype & CIFS_NEG_OP)) {
|
||||||
struct kvec iov = {
|
struct kvec iov = {
|
||||||
.iov_base = buf + 4,
|
.iov_base = buf + 4,
|
||||||
.iov_len = get_rfc1002_length(buf)
|
.iov_len = get_rfc1002_length(buf)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче