From 10b5d4a231d085b03d67d009cef577fbfb7edaf2 Mon Sep 17 00:00:00 2001 From: "Christian W. Zuckschwerdt" Date: Thu, 27 Dec 2018 13:32:02 +0100 Subject: [PATCH] Use thread-safe localtime --- src/util.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/util.c b/src/util.c index 3c087315..274ca3ab 100644 --- a/src/util.c +++ b/src/util.c @@ -257,7 +257,7 @@ void get_time_now(struct timeval *tv) char *local_time_str(time_t time_secs, char *buf) { time_t etime; - struct tm *tm_info; + struct tm tm_info; if (time_secs == 0) { time(&etime); @@ -266,9 +266,14 @@ char *local_time_str(time_t time_secs, char *buf) etime = time_secs; } - tm_info = localtime(&etime); // note: win32 doesn't have localtime_r() +#ifdef _MSC_VER + localtime_s(&tm_info, &etime); // win32 doesn't have localtime_r() - strftime(buf, LOCAL_TIME_BUFLEN, "%Y-%m-%d %H:%M:%S", tm_info); +#else + localtime_r(&etime, &tm_info); // thread-safe +#endif + + strftime(buf, LOCAL_TIME_BUFLEN, "%Y-%m-%d %H:%M:%S", &tm_info); return buf; }