On 3/30/23 7:09 PM, gbec...@apache.org wrote:
> Author: gbechis
> Date: Thu Mar 30 17:09:09 2023
> New Revision: 1908805
> 
> URL: http://svn.apache.org/viewvc?rev=1908805&view=rev
> Log:
> check for more possible SSL failures
> bz #66225
> 
> Modified:
>     httpd/httpd/trunk/modules/ssl/ssl_engine_kernel.c
> 
> Modified: httpd/httpd/trunk/modules/ssl/ssl_engine_kernel.c
> URL: 
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/ssl/ssl_engine_kernel.c?rev=1908805&r1=1908804&r2=1908805&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/ssl/ssl_engine_kernel.c (original)
> +++ httpd/httpd/trunk/modules/ssl/ssl_engine_kernel.c Thu Mar 30 17:09:09 2023
> @@ -997,10 +997,7 @@ static int ssl_hook_Access_classic(reque
>               * handshake to proceed. */
>              modssl_set_reneg_state(sslconn, RENEG_ALLOW);
>  
> -            SSL_renegotiate(ssl);
> -            SSL_do_handshake(ssl);
> -
> -            if (!SSL_is_init_finished(ssl)) {
> +            if(!SSL_renegotiate(ssl) || !SSL_do_handshake(ssl) || 
> !SSL_is_init_finished(ssl)) {

Wouldn't

if (!(SSL_renegotiate(ssl) && SSL_do_handshake(ssl) && 
SSL_is_init_finished(ssl))) {

be better as it would stop the calls as soon as one fails (due to boolean 
shortcuts)?
Or is it mandatory that SSL_do_handshake and / or SSL_is_init_finished get 
executed if one of steps before fails?

>                  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);
> 
> 
> 

Regards

RĂ¼diger

Reply via email to