X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=ssl%2Fstatem%2Fstatem_lib.c;h=933f18ecbb187fd9b7f775c1eb9d390387236a82;hp=5cd17f28361825c72f23cb25e67e0b63c17f0338;hb=b43c37658600300de485100185eebec8bfa3dbcf;hpb=25ffeb11ea86bdc76db150c504550602a9acc9bc diff --git a/ssl/statem/statem_lib.c b/ssl/statem/statem_lib.c index 5cd17f2836..933f18ecbb 100644 --- a/ssl/statem/statem_lib.c +++ b/ssl/statem/statem_lib.c @@ -501,7 +501,12 @@ int tls_construct_finished(SSL *s, WPACKET *pkt) && (!s->method->ssl3_enc->change_cipher_state(s, SSL3_CC_HANDSHAKE | SSL3_CHANGE_CIPHER_CLIENT_WRITE))) { SSLerr(SSL_F_TLS_CONSTRUCT_FINISHED, SSL_R_CANNOT_CHANGE_CIPHER); - goto err; + /* + * This is a fatal error, which leaves + * enc_write_ctx in an inconsistent state + * and thus ssl3_send_alert may crash. + */ + return 0; } if (s->server) {