]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
SSL_do_handshake can fail with 0 or <0 status codes.
authorGiovanni Bechis <gbechis@apache.org>
Mon, 3 Apr 2023 09:03:51 +0000 (09:03 +0000)
committerGiovanni Bechis <gbechis@apache.org>
Mon, 3 Apr 2023 09:03:51 +0000 (09:03 +0000)
spotted and fixed by rpluem@

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908936 13f79535-47bb-0310-9956-ffa450edef68

modules/ssl/ssl_engine_kernel.c

index 27c1d2383ab80cf2e4fa97ecdf950c22a43ce55b..f63865c37a3603e0becc9a16cd3625477a84826b 100644 (file)
@@ -997,7 +997,7 @@ static int ssl_hook_Access_classic(request_rec *r, SSLSrvConfigRec *sc, SSLDirCo
              * handshake to proceed. */
             modssl_set_reneg_state(sslconn, RENEG_ALLOW);
 
-            if(!SSL_renegotiate(ssl) || !SSL_do_handshake(ssl) || !SSL_is_init_finished(ssl)) {
+            if(!SSL_renegotiate(ssl) || (SSL_do_handshake(ssl) != 1) || !SSL_is_init_finished(ssl)) {
                 ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02225)
                               "Re-negotiation request failed");
                 ssl_log_ssl_error(SSLLOG_MARK, APLOG_ERR, r->server);