summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2021-08-04 21:27:51 +0300
committerSergey Kandaurov <pluknet@nginx.com>2021-08-04 21:27:51 +0300
commit02bd43d05b6f7803597d8453d9848b767dc4a323 (patch)
tree256b61d575a61596a2ac4dee58e6c7ba99828c5f
parent15769c3918578dfa601303afa40d7acf9c36e4d9 (diff)
downloadnginx-02bd43d05b6f7803597d8453d9848b767dc4a323.tar.gz
nginx-02bd43d05b6f7803597d8453d9848b767dc4a323.tar.bz2
SSL: SSL_CTX_set_tmp_dh() error handling.
For example, it can fail due to weak DH parameters.
-rw-r--r--src/event/ngx_event_openssl.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
index 60cc35876..2a0d0054f 100644
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -1376,7 +1376,13 @@ ngx_ssl_dhparam(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *file)
return NGX_ERROR;
}
- SSL_CTX_set_tmp_dh(ssl->ctx, dh);
+ if (SSL_CTX_set_tmp_dh(ssl->ctx, dh) != 1) {
+ ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
+ "SSL_CTX_set_tmp_dh(\"%s\") failed", file->data);
+ DH_free(dh);
+ BIO_free(bio);
+ return NGX_ERROR;
+ }
DH_free(dh);
BIO_free(bio);