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.
This commit is contained in:
Christopher Faulet 2020-10-07 13:20:23 +02:00
parent d7c6e6a71d
commit 58feb49ed2

View File

@ -4721,6 +4721,14 @@ void ssl_sock_free_srv_ctx(struct server *srv)
if (srv->ssl_ctx.npn_str) if (srv->ssl_ctx.npn_str)
free(srv->ssl_ctx.npn_str); free(srv->ssl_ctx.npn_str);
#endif #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) if (srv->ssl_ctx.ctx)
SSL_CTX_free(srv->ssl_ctx.ctx); SSL_CTX_free(srv->ssl_ctx.ctx);
} }