Skip to content

Commit cb72cd2

Browse files
Don't reset badmac_seen on a DTLS client reconnect
Signed-off-by: Gilles Peskine <[email protected]>
1 parent b710599 commit cb72cd2

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

library/ssl_tls.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1488,10 +1488,15 @@ void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl,
14881488
ssl->in_msgtype = 0;
14891489
ssl->in_msglen = 0;
14901490
ssl->in_hslen = 0;
1491-
ssl->badmac_seen_or_in_hsfraglen = 0;
14921491
ssl->keep_current_message = 0;
14931492
ssl->transform_in = NULL;
14941493

1494+
/* TLS: reset in_hsfraglen, which is part of message parsing.
1495+
* DTLS: on a client reconnect, don't reset badmac_seen. */
1496+
if (!partial) {
1497+
ssl->badmac_seen_or_in_hsfraglen = 0;
1498+
}
1499+
14951500
#if defined(MBEDTLS_SSL_PROTO_DTLS)
14961501
ssl->next_record_offset = 0;
14971502
ssl->in_epoch = 0;

0 commit comments

Comments
 (0)