Loading fs/smb/client/cifsencrypt.c +11 −6 Original line number Diff line number Diff line Loading @@ -735,6 +735,7 @@ cifs_crypto_secmech_release(struct TCP_Server_Info *server) cifs_free_hash(&server->secmech.sha512); cifs_free_hash(&server->secmech.hmacmd5); if (!SERVER_IS_CHAN(server)) { if (server->secmech.enc) { crypto_free_aead(server->secmech.enc); server->secmech.enc = NULL; Loading @@ -744,4 +745,8 @@ cifs_crypto_secmech_release(struct TCP_Server_Info *server) crypto_free_aead(server->secmech.dec); server->secmech.dec = NULL; } } else { server->secmech.enc = NULL; server->secmech.dec = NULL; } } fs/smb/client/smb2pdu.c +7 −3 Original line number Diff line number Diff line Loading @@ -1268,9 +1268,13 @@ SMB2_negotiate(const unsigned int xid, } if (server->cipher_type && !rc) { if (!SERVER_IS_CHAN(server)) { rc = smb3_crypto_aead_allocate(server); if (rc) cifs_server_dbg(VFS, "%s: crypto alloc failed, rc=%d\n", __func__, rc); } else { /* For channels, just reuse the primary server crypto secmech. */ server->secmech.enc = server->primary_server->secmech.enc; server->secmech.dec = server->primary_server->secmech.dec; } } neg_exit: free_rsp_buf(resp_buftype, rsp); Loading Loading
fs/smb/client/cifsencrypt.c +11 −6 Original line number Diff line number Diff line Loading @@ -735,6 +735,7 @@ cifs_crypto_secmech_release(struct TCP_Server_Info *server) cifs_free_hash(&server->secmech.sha512); cifs_free_hash(&server->secmech.hmacmd5); if (!SERVER_IS_CHAN(server)) { if (server->secmech.enc) { crypto_free_aead(server->secmech.enc); server->secmech.enc = NULL; Loading @@ -744,4 +745,8 @@ cifs_crypto_secmech_release(struct TCP_Server_Info *server) crypto_free_aead(server->secmech.dec); server->secmech.dec = NULL; } } else { server->secmech.enc = NULL; server->secmech.dec = NULL; } }
fs/smb/client/smb2pdu.c +7 −3 Original line number Diff line number Diff line Loading @@ -1268,9 +1268,13 @@ SMB2_negotiate(const unsigned int xid, } if (server->cipher_type && !rc) { if (!SERVER_IS_CHAN(server)) { rc = smb3_crypto_aead_allocate(server); if (rc) cifs_server_dbg(VFS, "%s: crypto alloc failed, rc=%d\n", __func__, rc); } else { /* For channels, just reuse the primary server crypto secmech. */ server->secmech.enc = server->primary_server->secmech.enc; server->secmech.dec = server->primary_server->secmech.dec; } } neg_exit: free_rsp_buf(resp_buftype, rsp); Loading