CLEANUP: ssl: Release cached SSL sessions on deinit
On deinit, when the server SSL ctx is released, we must take care to release the
cached SSL sessions stored in the array <ssl_ctx.reused_sess>. There are
global.nbthread entries in this array, each one may have a pointer on a cached
session.
This patch should fix the issue #802. No backport needed.
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index aa9061a..cce06cd 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -4721,6 +4721,14 @@
if (srv->ssl_ctx.npn_str)
free(srv->ssl_ctx.npn_str);
#endif
+ if (srv->ssl_ctx.reused_sess) {
+ int i;
+
+ for (i = 0; i < global.nbthread; i++)
+ free(srv->ssl_ctx.reused_sess[i].ptr);
+ free(srv->ssl_ctx.reused_sess);
+ }
+
if (srv->ssl_ctx.ctx)
SSL_CTX_free(srv->ssl_ctx.ctx);
}