diff --git a/src/dateTime.cpp b/src/dateTime.cpp index eaf955c3..58680791 100644 --- a/src/dateTime.cpp +++ b/src/dateTime.cpp @@ -655,17 +655,12 @@ datetime::datetime(const datetime& d) datetime::datetime(const time_t t, const int zone) { -#if defined(_MSC_VER) || defined(__MINGW32__) - // These functions are reentrant in MS C runtime library - struct tm* gtm = gmtime(&t); - struct tm* ltm = localtime(&t); +#if VMIME_HAVE_LOCALTIME_S struct tm tms; - if (gtm) - tms = *gtm; - else if (ltm) - tms = *ltm; + if (!gmtime_r(&tms, &t)) + localtime_r(&tms, &t); #elif VMIME_HAVE_LOCALTIME_R struct tm tms; diff --git a/src/platforms/windows/windowsHandler.cpp b/src/platforms/windows/windowsHandler.cpp index b4f605ec..b188af64 100644 --- a/src/platforms/windows/windowsHandler.cpp +++ b/src/platforms/windows/windowsHandler.cpp @@ -224,7 +224,7 @@ const vmime::string windowsHandler::getHostName() const return hostname; if (::strlen(hostname) == 0) - ::strcpy(hostname, "localhost"); + ::strcpy_s(hostname, "localhost"); // Try to get canonical name for the hostname struct addrinfo hints;