summaryrefslogtreecommitdiffstats
path: root/ssl
diff options
context:
space:
mode:
authorTodd Short <tshort@akamai.com>2021-05-26 10:03:35 -0400
committerBenjamin Kaduk <bkaduk@akamai.com>2021-05-27 12:06:49 -0700
commit9008dc9e38bc35541957eacebafac35912d20821 (patch)
treede3e3c7b0fe7bda28aba2f8dd38c2f4462d7dcc4 /ssl
parenta0f0e6f38009a4a93bd724f6f9c741c413be22d4 (diff)
Call SSLfatal when the generate_ticket_cb returns 0
Otherwise, the state machine ends up being in a bad state: ``` SSL routines:write_state_machine:missing fatal:ssl/statem/statem.c:850: ``` Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/15485)
Diffstat (limited to 'ssl')
-rw-r--r--ssl/statem/statem_srvr.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c
index fec12f6130..30d20f1297 100644
--- a/ssl/statem/statem_srvr.c
+++ b/ssl/statem/statem_srvr.c
@@ -4139,9 +4139,12 @@ int tls_construct_new_session_ticket(SSL *s, WPACKET *pkt)
}
if (tctx->generate_ticket_cb != NULL &&
- tctx->generate_ticket_cb(s, tctx->ticket_cb_data) == 0)
+ tctx->generate_ticket_cb(s, tctx->ticket_cb_data) == 0) {
+ SSLfatal(s, SSL_AD_INTERNAL_ERROR,
+ SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET,
+ ERR_R_INTERNAL_ERROR);
goto err;
-
+ }
/*
* If we are using anti-replay protection then we behave as if
* SSL_OP_NO_TICKET is set - we are caching tickets anyway so there