summaryrefslogtreecommitdiffstats
path: root/ssl
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2017-06-13 07:25:43 +0200
committerBernd Edlinger <bernd.edlinger@hotmail.de>2017-07-03 16:34:33 +0200
commitc31ad0bbf8415a691dd833b29e5be66f7c4aba42 (patch)
tree6683c329bda5d0acdf0294df6c262197c277c297 /ssl
parent4d89bf448490e7c77743f53bfbefbaddee9b275e (diff)
Fix a crash in tls_construct_client_certificate.
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3667)
Diffstat (limited to 'ssl')
-rw-r--r--ssl/statem/statem_clnt.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ssl/statem/statem_clnt.c b/ssl/statem/statem_clnt.c
index 7ab30bdc1e..53aa1dc0dc 100644
--- a/ssl/statem/statem_clnt.c
+++ b/ssl/statem/statem_clnt.c
@@ -3320,7 +3320,12 @@ int tls_construct_client_certificate(SSL *s, WPACKET *pkt)
SSL3_CC_HANDSHAKE | SSL3_CHANGE_CIPHER_CLIENT_WRITE))) {
SSLerr(SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE,
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;
}
return 1;