From 73339770a43a28119eb9db1aafd09a6acf9ce5cc Mon Sep 17 00:00:00 2001 From: Christian Spielberger <c.spielberger@commend.com> Date: Tue, 6 Dec 2022 16:32:19 +0100 Subject: [PATCH] tls: clear session callbacks in destructor This fixes a segmentation fault that appear when the tls object is freed before the SSL object and TLS session reuse was enabled. --- src/tls/openssl/tls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tls/openssl/tls.c b/src/tls/openssl/tls.c index ef22b0e04..88a14fed9 100644 --- a/src/tls/openssl/tls.c +++ b/src/tls/openssl/tls.c @@ -98,8 +98,11 @@ static void destructor(void *data) { struct tls *tls = data; - if (tls->ctx) + if (tls->ctx) { + SSL_CTX_sess_set_new_cb(tls->ctx, NULL); + SSL_CTX_sess_set_remove_cb(tls->ctx, NULL); SSL_CTX_free(tls->ctx); + } if (tls->cert) X509_free(tls->cert);