]> git.kaiwu.me - nginx.git/commitdiff
SSL: SSL_CTX_set_tmp_dh() error handling.
authorSergey Kandaurov <pluknet@nginx.com>
Wed, 4 Aug 2021 18:27:51 +0000 (21:27 +0300)
committerSergey Kandaurov <pluknet@nginx.com>
Wed, 4 Aug 2021 18:27:51 +0000 (21:27 +0300)
For example, it can fail due to weak DH parameters.

src/event/ngx_event_openssl.c

index 60cc35876fb41bdb7976d86405cc310f56861b73..2a0d0054f824ee07dc813cc83b6532d6fbbd5eaa 100644 (file)
@@ -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);