diff options
Diffstat (limited to 'src/lib/libssl/d1_pkt.c')
-rw-r--r-- | src/lib/libssl/d1_pkt.c | 37 |
1 files changed, 4 insertions, 33 deletions
diff --git a/src/lib/libssl/d1_pkt.c b/src/lib/libssl/d1_pkt.c index e884f2d592..e07fc7e3f9 100644 --- a/src/lib/libssl/d1_pkt.c +++ b/src/lib/libssl/d1_pkt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: d1_pkt.c,v 1.117 2022/02/05 14:54:10 jsing Exp $ */ | 1 | /* $OpenBSD: d1_pkt.c,v 1.118 2022/02/21 18:22:20 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
@@ -735,38 +735,9 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
735 | goto start; | 735 | goto start; |
736 | } | 736 | } |
737 | 737 | ||
738 | if (rr->type == SSL3_RT_ALERT && rr->length >= DTLS1_AL_HEADER_LENGTH && | 738 | if (rr->type == SSL3_RT_ALERT) { |
739 | rr->off == 0) { | 739 | if ((ret = ssl3_read_alert(s)) <= 0) |
740 | int alert_level = rr->data[0]; | 740 | return ret; |
741 | int alert_descr = rr->data[1]; | ||
742 | |||
743 | ssl_msg_callback(s, 0, SSL3_RT_ALERT, rr->data, 2); | ||
744 | |||
745 | ssl_info_callback(s, SSL_CB_READ_ALERT, | ||
746 | (alert_level << 8) | alert_descr); | ||
747 | |||
748 | if (alert_level == SSL3_AL_WARNING) { | ||
749 | s->s3->warn_alert = alert_descr; | ||
750 | if (alert_descr == SSL_AD_CLOSE_NOTIFY) { | ||
751 | s->internal->shutdown |= SSL_RECEIVED_SHUTDOWN; | ||
752 | return (0); | ||
753 | } | ||
754 | } else if (alert_level == SSL3_AL_FATAL) { | ||
755 | s->internal->rwstate = SSL_NOTHING; | ||
756 | s->s3->fatal_alert = alert_descr; | ||
757 | SSLerror(s, SSL_AD_REASON_OFFSET + alert_descr); | ||
758 | ERR_asprintf_error_data("SSL alert number %d", | ||
759 | alert_descr); | ||
760 | s->internal->shutdown|=SSL_RECEIVED_SHUTDOWN; | ||
761 | SSL_CTX_remove_session(s->ctx, s->session); | ||
762 | return (0); | ||
763 | } else { | ||
764 | al = SSL_AD_ILLEGAL_PARAMETER; | ||
765 | SSLerror(s, SSL_R_UNKNOWN_ALERT_TYPE); | ||
766 | goto fatal_err; | ||
767 | } | ||
768 | |||
769 | rr->length = 0; | ||
770 | goto start; | 741 | goto start; |
771 | } | 742 | } |
772 | 743 | ||