diff options
Diffstat (limited to 'ssl/statem/statem.c')
| -rw-r--r-- | ssl/statem/statem.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/ssl/statem/statem.c b/ssl/statem/statem.c index d75f9ea03608..f76c0e48034b 100644 --- a/ssl/statem/statem.c +++ b/ssl/statem/statem.c @@ -118,11 +118,12 @@ void ossl_statem_set_renegotiate(SSL *s)  void ossl_statem_fatal(SSL *s, int al, int func, int reason, const char *file,                         int line)  { +    ERR_put_error(ERR_LIB_SSL, func, reason, file, line);      /* We shouldn't call SSLfatal() twice. Once is enough */ -    assert(s->statem.state != MSG_FLOW_ERROR); +    if (s->statem.in_init && s->statem.state == MSG_FLOW_ERROR) +      return;      s->statem.in_init = 1;      s->statem.state = MSG_FLOW_ERROR; -    ERR_put_error(ERR_LIB_SSL, func, reason, file, line);      if (al != SSL_AD_NO_ALERT              && s->statem.enc_write_state != ENC_WRITE_STATE_INVALID)          ssl3_send_alert(s, SSL3_AL_FATAL, al); | 
