diff --git a/ChangeLog b/ChangeLog index ee2fc46c6..4aa40cb18 100644 --- a/ChangeLog +++ b/ChangeLog @@ -79,7 +79,7 @@ Bugfix * Fix word size check in in pk.c to not depend on MBEDTLS_HAVE_INT64. * Fix crash when calling mbedtls_ssl_cache_free() twice. Found by MilenkoMitrovic, #1104 - * Fix mbedtls_timing_alarm(0) on Unix. + * Fix mbedtls_timing_alarm(0) on Unix and MinGW. * Fix use of uninitialized memory in mbedtls_timing_get_timer when reset=1. * Fix issue in RSA key generation program programs/x509/rsa_genkey where the failure of CTR DRBG initialization lead to freeing an diff --git a/library/timing.c b/library/timing.c index 148938387..83d028730 100644 --- a/library/timing.c +++ b/library/timing.c @@ -268,6 +268,14 @@ void set_alarm( int seconds ) { DWORD ThreadId; + if( seconds == 0 ) + { + /* No need to create a thread for this simple case. + * Also, this shorcut is more reliable at least on MinGW32 */ + alarmed = 1; + return; + } + alarmed = 0; alarmMs = seconds * 1000; CloseHandle( CreateThread( NULL, 0, TimerProc, NULL, 0, &ThreadId ) );