diff options
author | John Baldwin <jhb@FreeBSD.org> | 2022-11-12 00:00:37 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2023-01-24 04:57:41 +0000 |
commit | 4f1a2168f685cadd9e8720fc6220a7a686fba2d5 (patch) | |
tree | 81fdf375e42ef785b72af9742ee828a54f09d261 | |
parent | 39455b3d3771815daaa62c8ecf4527b56a2e8d14 (diff) |
ktls: Don't leak ktls session objects for certain errors.
ktls_cleanup() does not free ktls session objects, it merely
cleans (and frees) members of the object.
Change callers to use ktls_free() instead.
Reviewed by: gallatin, markj
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D37352
(cherry picked from commit d01db2b83705eb3557a32ea13143997cdb8135a3)
-rw-r--r-- | sys/kern/uipc_ktls.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/uipc_ktls.c b/sys/kern/uipc_ktls.c index f60d5e0948d0..e3f84171a976 100644 --- a/sys/kern/uipc_ktls.c +++ b/sys/kern/uipc_ktls.c @@ -682,7 +682,7 @@ ktls_create_session(struct socket *so, struct tls_enable *en, return (0); out: - ktls_cleanup(tls); + ktls_free(tls); return (error); } @@ -1099,7 +1099,7 @@ ktls_enable_rx(struct socket *so, struct tls_enable *en) error = ktls_try_sw(so, tls, KTLS_RX); if (error) { - ktls_cleanup(tls); + ktls_free(tls); return (error); } @@ -1170,13 +1170,13 @@ ktls_enable_tx(struct socket *so, struct tls_enable *en) error = ktls_try_sw(so, tls, KTLS_TX); if (error) { - ktls_cleanup(tls); + ktls_free(tls); return (error); } error = SOCK_IO_SEND_LOCK(so, SBL_WAIT); if (error) { - ktls_cleanup(tls); + ktls_free(tls); return (error); } |