diff options
-rw-r--r-- | networking/httpd.c | 6 | ||||
-rw-r--r-- | runit/svlogd.c | 4 | ||||
-rw-r--r-- | sysklogd/syslogd_and_logger.c | 1 |
3 files changed, 8 insertions, 3 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index 74196a4f1..9439e206c 100644 --- a/networking/httpd.c +++ b/networking/httpd.c @@ -1046,6 +1046,7 @@ static void send_headers(int responseNum) /* Fixed size 29-byte string. Example: Sun, 06 Nov 1994 08:49:37 GMT */ char date_str[40]; /* using a bit larger buffer to paranoia reasons */ + struct tm tm; const char *responseString = ""; const char *infoString = NULL; #if ENABLE_FEATURE_HTTPD_ERROR_PAGES @@ -1074,7 +1075,8 @@ static void send_headers(int responseNum) * always fit into those kbytes. */ - strftime(date_str, sizeof(date_str), RFC1123FMT, gmtime(&timer)); + strftime(date_str, sizeof(date_str), RFC1123FMT, gmtime_r(&timer, &tm)); + /* ^^^ using gmtime_r() instead of gmtime() to not use static data */ len = sprintf(iobuf, "HTTP/1.0 %d %s\r\n" "Content-type: %s\r\n" @@ -1128,7 +1130,7 @@ static void send_headers(int responseNum) #endif if (file_size != -1) { /* file */ - strftime(date_str, sizeof(date_str), RFC1123FMT, gmtime(&last_mod)); + strftime(date_str, sizeof(date_str), RFC1123FMT, gmtime_r(&last_mod, &tm)); #if ENABLE_FEATURE_HTTPD_RANGES if (responseNum == HTTP_PARTIAL_CONTENT) { len += sprintf(iobuf + len, diff --git a/runit/svlogd.c b/runit/svlogd.c index 412290ca9..13de2570f 100644 --- a/runit/svlogd.c +++ b/runit/svlogd.c @@ -347,11 +347,13 @@ static unsigned pmatch(const char *p, const char *s, unsigned len) /* NUL terminated */ static void fmt_time_human_30nul(char *s, char dt_delim) { + struct tm tm; struct tm *ptm; struct timeval tv; gettimeofday(&tv, NULL); - ptm = gmtime(&tv.tv_sec); + ptm = gmtime_r(&tv.tv_sec, &tm); + /* ^^^ using gmtime_r() instead of gmtime() to not use static data */ sprintf(s, "%04u-%02u-%02u%c%02u:%02u:%02u.%06u000", (unsigned)(1900 + ptm->tm_year), (unsigned)(ptm->tm_mon + 1), diff --git a/sysklogd/syslogd_and_logger.c b/sysklogd/syslogd_and_logger.c index 9bba195d4..94d8273b6 100644 --- a/sysklogd/syslogd_and_logger.c +++ b/sysklogd/syslogd_and_logger.c @@ -53,6 +53,7 @@ typedef struct _code { static const CODE *const bb_prioritynames = prioritynames; static const CODE *const bb_facilitynames = facilitynames; + #if ENABLE_SYSLOGD #include "syslogd.c" #endif |