Fix possible signedness issue in time comparison

This commit is contained in:
Manuel Pégourié-Gonnard 2015-05-20 11:41:36 +02:00
parent 0849a0a910
commit 8eff512274

View File

@ -387,11 +387,16 @@ int mbedtls_ssl_ticket_parse( void *p_ticket,
goto cleanup; goto cleanup;
#if defined(MBEDTLS_HAVE_TIME) #if defined(MBEDTLS_HAVE_TIME)
/* Check if still valid */
if( ( time( NULL) - session->start ) > ctx->ticket_lifetime )
{ {
ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; /* Check for expiration */
goto cleanup; time_t current_time = time( NULL );
if( current_time < session->start ||
(uint32_t)( current_time - session->start ) > ctx->ticket_lifetime )
{
ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED;
goto cleanup;
}
} }
#endif #endif