mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
[SCSI] iscsi: always release crypto
Unconditionally free crypto state, as it is always allocated during TCP connection creation. Without this, crypto structures leak and crc32c module refcounts grow as connections are created and destroyed. Signed-off-by: Pete Wyckoff <pw@osc.edu> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
7ca63cb470
commit
534284a09b
1 changed files with 4 additions and 11 deletions
|
@ -1816,21 +1816,14 @@ iscsi_tcp_conn_destroy(struct iscsi_cls_conn *cls_conn)
|
|||
{
|
||||
struct iscsi_conn *conn = cls_conn->dd_data;
|
||||
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
|
||||
int digest = 0;
|
||||
|
||||
if (conn->hdrdgst_en || conn->datadgst_en)
|
||||
digest = 1;
|
||||
|
||||
iscsi_tcp_release_conn(conn);
|
||||
iscsi_conn_teardown(cls_conn);
|
||||
|
||||
/* now free tcp_conn */
|
||||
if (digest) {
|
||||
if (tcp_conn->tx_hash.tfm)
|
||||
crypto_free_hash(tcp_conn->tx_hash.tfm);
|
||||
if (tcp_conn->rx_hash.tfm)
|
||||
crypto_free_hash(tcp_conn->rx_hash.tfm);
|
||||
}
|
||||
if (tcp_conn->tx_hash.tfm)
|
||||
crypto_free_hash(tcp_conn->tx_hash.tfm);
|
||||
if (tcp_conn->rx_hash.tfm)
|
||||
crypto_free_hash(tcp_conn->rx_hash.tfm);
|
||||
|
||||
kfree(tcp_conn);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue