cifs: fix uninitialised lease_key in open_shroot()
SMB2_open_init() expects a pre-initialised lease_key when opening a file with a lease, so set pfid->lease_key prior to calling it in open_shroot(). This issue was observed when performing some DFS failover tests and the lease key was never randomly generated. Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz> Signed-off-by: Steve French <stfrench@microsoft.com> Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com> Reviewed-by: Aurelien Aptel <aaptel@suse.com> CC: Stable <stable@vger.kernel.org>
This commit is contained in:
Родитель
3786f4bddc
Коммит
0fe0781f29
|
@ -687,6 +687,11 @@ int open_shroot(unsigned int xid, struct cifs_tcon *tcon,
|
||||||
if (smb3_encryption_required(tcon))
|
if (smb3_encryption_required(tcon))
|
||||||
flags |= CIFS_TRANSFORM_REQ;
|
flags |= CIFS_TRANSFORM_REQ;
|
||||||
|
|
||||||
|
if (!server->ops->new_lease_key)
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
|
server->ops->new_lease_key(pfid);
|
||||||
|
|
||||||
memset(rqst, 0, sizeof(rqst));
|
memset(rqst, 0, sizeof(rqst));
|
||||||
resp_buftype[0] = resp_buftype[1] = CIFS_NO_BUFFER;
|
resp_buftype[0] = resp_buftype[1] = CIFS_NO_BUFFER;
|
||||||
memset(rsp_iov, 0, sizeof(rsp_iov));
|
memset(rsp_iov, 0, sizeof(rsp_iov));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче