提交 c774973e 编写于 作者: V Vakul Garg 提交者: David S. Miller

tls: Fixed a memory leak during socket close

During socket close, if there is a open record with tx context, it needs
to be be freed apart from freeing up plaintext and encrypted scatter
lists. This patch frees up the open record if present in tx context.

Also tls_free_both_sg() has been renamed to tls_free_open_rec() to
indicate that the free record in tx context is being freed inside the
function.

Fixes: a42055e8 ("net/tls: Add support for async encryption")
Signed-off-by: NVakul Garg <vakul.garg@nxp.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 b85135b5
......@@ -310,7 +310,7 @@ static void free_sg(struct sock *sk, struct scatterlist *sg,
*sg_size = 0;
}
static void tls_free_both_sg(struct sock *sk)
static void tls_free_open_rec(struct sock *sk)
{
struct tls_context *tls_ctx = tls_get_ctx(sk);
struct tls_sw_context_tx *ctx = tls_sw_ctx_tx(tls_ctx);
......@@ -327,6 +327,8 @@ static void tls_free_both_sg(struct sock *sk)
free_sg(sk, rec->sg_plaintext_data,
&rec->sg_plaintext_num_elem,
&rec->sg_plaintext_size);
kfree(rec);
}
int tls_tx_records(struct sock *sk, int flags)
......@@ -1591,7 +1593,7 @@ void tls_sw_free_resources_tx(struct sock *sk)
}
crypto_free_aead(ctx->aead_send);
tls_free_both_sg(sk);
tls_free_open_rec(sk);
kfree(ctx);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册