From 1495a812e4676e291bf787ba02ee988f9dfe25ec Mon Sep 17 00:00:00 2001 From: Christian Jensen Date: Thu, 23 Apr 2026 22:16:18 +0200 Subject: [PATCH] Added timeout to SSL handshake in transport_mbedtls.c (#1405) * Added timeout to SSL handshake in transport_mbedtls.c --------- Co-authored-by: Aniruddha Kanhere --- .../network_transport/transport_mbedtls.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.c b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.c index b668ea11dc..e6350e56d7 100644 --- a/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.c +++ b/FreeRTOS-Plus/Source/Application-Protocols/network_transport/transport_mbedtls.c @@ -599,11 +599,16 @@ static TlsTransportStatus_t tlsHandshake( NetworkContext_t * pNetworkContext, if( returnStatus == TLS_TRANSPORT_SUCCESS ) { /* Perform the TLS handshake. */ + TickType_t handshakeTimeoutTicks = pdMS_TO_TICKS( 10000 ); + TimeOut_t handshakeStart; + vTaskSetTimeOutState( &handshakeStart ); + do { mbedtlsError = mbedtls_ssl_handshake( &( pTlsTransportParams->sslContext.context ) ); - } while( ( mbedtlsError == MBEDTLS_ERR_SSL_WANT_READ ) || - ( mbedtlsError == MBEDTLS_ERR_SSL_WANT_WRITE ) ); + } while( ( ( mbedtlsError == MBEDTLS_ERR_SSL_WANT_READ ) || + ( mbedtlsError == MBEDTLS_ERR_SSL_WANT_WRITE ) ) && + ( xTaskCheckForTimeOut( &handshakeStart, &handshakeTimeoutTicks ) == pdFALSE ) ); if( mbedtlsError != 0 ) {