diff --git a/modules/ssl/ssl_engine_init.c b/modules/ssl/ssl_engine_init.c index b44e01f1c2..728ee01693 100644 --- a/modules/ssl/ssl_engine_init.c +++ b/modules/ssl/ssl_engine_init.c @@ -982,7 +982,7 @@ static apr_status_t ssl_init_server_certs(server_rec *s, #ifdef HAVE_ECC EC_GROUP *ecparams; int nid; - EC_KEY *eckey; + EC_KEY *eckey = NULL; #endif #ifndef HAVE_SSL_CONF_CMD SSL *ssl; @@ -1151,10 +1151,11 @@ static apr_status_t ssl_init_server_certs(server_rec *s, #if defined(SSL_CTX_set_ecdh_auto) SSL_CTX_set_ecdh_auto(mctx->ssl_ctx, 1); #else - SSL_CTX_set_tmp_ecdh(mctx->ssl_ctx, - EC_KEY_new_by_curve_name(NID_X9_62_prime256v1)); + eckey = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1); + SSL_CTX_set_tmp_ecdh(mctx->ssl_ctx, eckey); #endif } + EC_KEY_free(eckey); #endif return APR_SUCCESS;