aboutsummaryrefslogtreecommitdiff
path: root/sys/rpc
diff options
context:
space:
mode:
authorRick Macklem <rmacklem@FreeBSD.org>2025-07-18 18:27:50 +0000
committerRick Macklem <rmacklem@FreeBSD.org>2025-07-18 18:27:50 +0000
commit2420e64c463a4873a7f0cb86837148bc66a6474a (patch)
tree8dbb3feafff43867042940fe2b940bc0b0f8630b /sys/rpc
parent57ee56578cc55b3da9a0dee64b385507be2dc80a (diff)
Diffstat (limited to 'sys/rpc')
-rw-r--r--sys/rpc/rpcsec_tls/rpctls_impl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/rpc/rpcsec_tls/rpctls_impl.c b/sys/rpc/rpcsec_tls/rpctls_impl.c
index 93fe283e65fd..51fe270b13d9 100644
--- a/sys/rpc/rpcsec_tls/rpctls_impl.c
+++ b/sys/rpc/rpcsec_tls/rpctls_impl.c
@@ -240,6 +240,14 @@ rpctls_rpc_failed(struct upsock *ups, struct socket *so)
* failed to do the handshake.
*/
mtx_unlock(&rpctls_lock);
+ /*
+ * Do a shutdown on the socket, since the daemon is
+ * probably stuck in SSL_accept() or SSL_connect() trying to
+ * read the socket. Do not soclose() the socket, since the
+ * daemon will close() the socket after SSL_accept()
+ * returns an error.
+ */
+ soshutdown(so, SHUT_RD);
}
}