diff --git a/lib/tls/mbedtls/mbedtls-server.c b/lib/tls/mbedtls/mbedtls-server.c index ec337edc4..ca703c5a2 100644 --- a/lib/tls/mbedtls/mbedtls-server.c +++ b/lib/tls/mbedtls/mbedtls-server.c @@ -271,7 +271,9 @@ int #endif lws_tls_server_abort_connection(struct lws *wsi) { - __lws_tls_shutdown(wsi); + if (wsi->tls.use_ssl) + __lws_tls_shutdown(wsi); + SSL_free(wsi->tls.ssl); return 0; diff --git a/lib/tls/openssl/openssl-server.c b/lib/tls/openssl/openssl-server.c index 24f832e69..94e884622 100644 --- a/lib/tls/openssl/openssl-server.c +++ b/lib/tls/openssl/openssl-server.c @@ -682,7 +682,8 @@ lws_tls_server_new_nonblocking(struct lws *wsi, lws_sockfd_type accept_fd) int lws_tls_server_abort_connection(struct lws *wsi) { - SSL_shutdown(wsi->tls.ssl); + if (wsi->tls.use_ssl) + SSL_shutdown(wsi->tls.ssl); SSL_free(wsi->tls.ssl); return 0;