mirror of
https://github.com/ARMmbed/mbedtls.git
synced 2025-05-12 09:54:38 +08:00
Merge pull request #10046 from mpg/fix-defrag-interleave-3.6
Fix defrag interleave 3.6
This commit is contained in:
commit
579f91ad44
@ -5148,6 +5148,18 @@ int mbedtls_ssl_handle_message_type(mbedtls_ssl_context *ssl)
|
|||||||
{
|
{
|
||||||
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
|
|
||||||
|
/* If we're in the middle of a fragmented TLS handshake message,
|
||||||
|
* we don't accept any other message type. For TLS 1.3, the spec forbids
|
||||||
|
* interleaving other message types between handshake fragments. For TLS
|
||||||
|
* 1.2, the spec does not forbid it but we do. */
|
||||||
|
if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_STREAM &&
|
||||||
|
ssl->badmac_seen_or_in_hsfraglen != 0 &&
|
||||||
|
ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) {
|
||||||
|
MBEDTLS_SSL_DEBUG_MSG(1, ("non-handshake message in the middle"
|
||||||
|
" of a fragmented handshake message"));
|
||||||
|
return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle particular types of records
|
* Handle particular types of records
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user