]> git.kaiwu.me - nginx.git/commitdiff
SSL: free pkey on SSL_CTX_set0_tmp_dh_pkey() failure.
authorSergey Kandaurov <pluknet@nginx.com>
Mon, 17 Jan 2022 14:05:12 +0000 (17:05 +0300)
committerSergey Kandaurov <pluknet@nginx.com>
Mon, 17 Jan 2022 14:05:12 +0000 (17:05 +0300)
The behaviour was changed in OpenSSL 3.0.1:
https://git.openssl.org/?p=openssl.git;a=commitdiff;h=bf17b7b

src/event/ngx_event_openssl.c

index 33977af613687fe1abf3bcb96493e798cfbef49f..daa28ffe4db583e5e9cb48730c610713a92955a7 100644 (file)
@@ -1383,6 +1383,9 @@ ngx_ssl_dhparam(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *file)
     if (SSL_CTX_set0_tmp_dh_pkey(ssl->ctx, dh) != 1) {
         ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
                       "SSL_CTX_set0_tmp_dh_pkey(\%s\") failed", file->data);
+#if (OPENSSL_VERSION_NUMBER >= 0x3000001fL)
+        EVP_PKEY_free(dh);
+#endif
         BIO_free(bio);
         return NGX_ERROR;
     }