iscsi: always release crypto
PATCH 1/1 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 <[email protected]>
---
drivers/scsi/iscsi_tcp.c +4 -11
@@ -1816,21 +1816,14 @@ iscsi_tcp_conn_destroy(struct iscsi_cls_ {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); }
Quoted 5 lines · Pete Wyckoff
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.
Thanks, merged. It is in the next bugfix patchset.