From 2631a941469864a35258130082096876e7243225 Mon Sep 17 00:00:00 2001 From: Rajarshi Karmakar Date: Mon, 22 May 2023 16:51:57 +0000 Subject: OSSL_sleep(): Calling sleep() function if sleepTime > 1sec On some systems usleep() func does not support time >1sec. Reviewed-by: Matt Caswell Reviewed-by: Richard Levitte Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/21010) --- crypto/sleep.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'crypto/sleep.c') diff --git a/crypto/sleep.c b/crypto/sleep.c index 95d6c79233..d57a9e3caa 100644 --- a/crypto/sleep.c +++ b/crypto/sleep.c @@ -12,6 +12,7 @@ /* system-specific variants defining OSSL_sleep() */ #if defined(OPENSSL_SYS_UNIX) || defined(__DJGPP__) +#include void OSSL_sleep(uint64_t millis) { @@ -36,7 +37,11 @@ void OSSL_sleep(uint64_t millis) usleep(millis * 1000); # endif # else - usleep(millis * 1000); + unsigned int s = (unsigned int)(millis / 1000); + unsigned int us = (unsigned int)((millis % 1000) * 1000); + + sleep(s); + usleep(us); # endif } #elif defined(_WIN32) && !defined(OPENSSL_SYS_UEFI) -- cgit v1.2.3