Skip to content

Commit 392fa7a

Browse files
committed
Keep old method in case of an unsupported protocol
When we're configured with no-ssl3 and we receive an SSL v3 Client Hello, we set the method to NULL. We didn't used to do that, and it breaks things. This is a regression introduced in 62f45cc. Keep the old method since the code is not able to deal with a NULL method at this time. CVE-2014-3569, PR#3571 Reviewed-by: Emilia Käsper <emilia@openssl.org>
1 parent c882abd commit 392fa7a

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Diff for: ssl/s23_srvr.c

+4-2
Original file line numberDiff line numberDiff line change
@@ -615,12 +615,14 @@ int ssl23_get_client_hello(SSL *s)
615615
if ((type == 2) || (type == 3))
616616
{
617617
/* we have SSLv3/TLSv1 (type 2: SSL2 style, type 3: SSL3/TLS style) */
618-
s->method = ssl23_get_server_method(s->version);
619-
if (s->method == NULL)
618+
const SSL_METHOD *new_method;
619+
new_method = ssl23_get_server_method(s->version);
620+
if (new_method == NULL)
620621
{
621622
SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO,SSL_R_UNSUPPORTED_PROTOCOL);
622623
goto err;
623624
}
625+
s->method = new_method;
624626

625627
if (!ssl_init_wbio_buffer(s,1)) goto err;
626628

0 commit comments

Comments
 (0)