Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/freebsd/freebsd-src.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2022-11-12 03:00:37 +0300
committerJohn Baldwin <jhb@FreeBSD.org>2022-11-12 03:00:37 +0300
commitd01db2b83705eb3557a32ea13143997cdb8135a3 (patch)
treee0fea1dac2f72061ef3c4bb908934b49e3564262
parent573bd1fcf532eae35ac30d6aa2c6ff4985a60fe8 (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
-rw-r--r--sys/kern/uipc_ktls.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/uipc_ktls.c b/sys/kern/uipc_ktls.c
index b4e5004ed1f8..8f3a204cbd84 100644
--- a/sys/kern/uipc_ktls.c
+++ b/sys/kern/uipc_ktls.c
@@ -744,7 +744,7 @@ ktls_create_session(struct socket *so, struct tls_enable *en,
return (0);
out:
- ktls_cleanup(tls);
+ ktls_free(tls);
return (error);
}
@@ -1309,7 +1309,7 @@ ktls_enable_rx(struct socket *so, struct tls_enable *en)
error = ktls_ocf_try(so, tls, KTLS_RX);
if (error) {
- ktls_cleanup(tls);
+ ktls_free(tls);
return (error);
}
@@ -1387,13 +1387,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);
}