You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by yl...@apache.org on 2017/01/31 23:39:58 UTC
svn commit: r1781188 - in /httpd/httpd/trunk/modules/ssl:
ssl_engine_config.c ssl_engine_init.c
Author: ylavic
Date: Tue Jan 31 23:39:58 2017
New Revision: 1781188
URL: http://svn.apache.org/viewvc?rev=1781188&view=rev
Log:
mod_ssl: follow up to r1740928: fix memory leaks.
Modified:
httpd/httpd/trunk/modules/ssl/ssl_engine_config.c
httpd/httpd/trunk/modules/ssl/ssl_engine_init.c
Modified: httpd/httpd/trunk/modules/ssl/ssl_engine_config.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/ssl/ssl_engine_config.c?rev=1781188&r1=1781187&r2=1781188&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_engine_config.c (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_engine_config.c Tue Jan 31 23:39:58 2017
@@ -98,6 +98,12 @@ BOOL ssl_config_global_isfixed(SSLModCon
** _________________________________________________________________
*/
+static apr_status_t modssl_ctx_config_cleanup(void *ctx)
+{
+ SSL_CONF_CTX_free(ctx);
+ return APR_SUCCESS;
+}
+
static void modssl_ctx_init(modssl_ctx_t *mctx, apr_pool_t *p)
{
mctx->sc = NULL; /* set during module init */
@@ -157,6 +163,9 @@ static void modssl_ctx_init(modssl_ctx_t
#endif
#ifdef HAVE_SSL_CONF_CMD
mctx->ssl_ctx_config = SSL_CONF_CTX_new();
+ apr_pool_cleanup_register(p, mctx->ssl_ctx_config,
+ modssl_ctx_config_cleanup,
+ apr_pool_cleanup_null);
SSL_CONF_CTX_set_flags(mctx->ssl_ctx_config, SSL_CONF_FLAG_FILE);
SSL_CONF_CTX_set_flags(mctx->ssl_ctx_config, SSL_CONF_FLAG_SERVER);
SSL_CONF_CTX_set_flags(mctx->ssl_ctx_config, SSL_CONF_FLAG_CERTIFICATE);
Modified: httpd/httpd/trunk/modules/ssl/ssl_engine_init.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/ssl/ssl_engine_init.c?rev=1781188&r1=1781187&r2=1781188&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_engine_init.c (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_engine_init.c Tue Jan 31 23:39:58 2017
@@ -1617,6 +1617,11 @@ static apr_status_t ssl_init_proxy_ctx(s
{
apr_status_t rv;
+ if (proxy->ssl_ctx) {
+ /* Merged/initialized already */
+ return APR_SUCCESS;
+ }
+
apr_pool_cleanup_register(p, proxy,
ssl_cleanup_proxy_ctx,
apr_pool_cleanup_null);
@@ -1687,7 +1692,6 @@ static apr_status_t ssl_init_server_ctx(
ssl_log_ssl_error(SSLLOG_MARK, APLOG_EMERG, s);
return ssl_die(s);
}
- SSL_CONF_CTX_free(cctx);
#endif
if (SSL_CTX_check_private_key(sc->server->ssl_ctx) != 1) {