From: Tee KOBAYASHI Date: Sun, 26 Jun 2022 08:40:29 +0000 (+0900) Subject: Avoid using union wrt. SystemTimeToFileTime X-Git-Tag: openssl-3.2.0-alpha1~2457 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8eca6864e080c9b8197fec81cd6f327be43bb14c;p=thirdparty%2Fopenssl.git Avoid using union wrt. SystemTimeToFileTime Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/18660) --- diff --git a/crypto/bio/bss_dgram.c b/crypto/bio/bss_dgram.c index 4b363829af1..7201c6ae633 100644 --- a/crypto/bio/bss_dgram.c +++ b/crypto/bio/bss_dgram.c @@ -1900,20 +1900,19 @@ static void get_current_time(struct timeval *t) { # if defined(_WIN32) SYSTEMTIME st; - union { - unsigned __int64 ul; - FILETIME ft; - } now; + unsigned __int64 now_ul; + FILETIME now_ft; GetSystemTime(&st); - SystemTimeToFileTime(&st, &now.ft); + SystemTimeToFileTime(&st, &now_ft); + now_ul = ((unsigned __int64)now_ft.dwHighDateTime << 32) | now_ft.dwLowDateTime; # ifdef __MINGW32__ - now.ul -= 116444736000000000ULL; + now_ul -= 116444736000000000ULL; # else - now.ul -= 116444736000000000UI64; /* re-bias to 1/1/1970 */ + now_ul -= 116444736000000000UI64; /* re-bias to 1/1/1970 */ # endif - t->tv_sec = (long)(now.ul / 10000000); - t->tv_usec = ((int)(now.ul % 10000000)) / 10; + t->tv_sec = (long)(now_ul / 10000000); + t->tv_usec = ((int)(now_ul % 10000000)) / 10; # else gettimeofday(t, NULL); # endif