ls->close = file_close;
time_t now = time(NULL);
- struct tm *tm = localtime(&now);
- ASSERT(tm);
- do_log_switch(fs, tm); // die()'s on errors
+ struct tm ltm;
+ if (localtime_r(&now, <m) == NULL) {
+ ASSERT(0);
+ }
+ do_log_switch(fs, <m); // die()'s on errors
return ls;
}
log_switch(void)
{
time_t now = time(NULL);
- struct tm *tm = localtime(&now);
- ASSERT(tm);
+ struct tm ltm;
+ if (localtime_r(&now, <m) == NULL) {
+ ASSERT(0);
+ }
int switched = 0;
for (int i=0; i < log_streams_after; i++)
if (log_streams.ptr[i]->handler == file_handler)
- switched |= do_log_switch((struct file_stream *) log_streams.ptr[i], tm);
+ switched |= do_log_switch((struct file_stream *) log_streams.ptr[i], <m);
return switched;
}
u64 tmp_time_u64 = *(u64*)src;
time_t tmp_time = (time_t) tmp_time_u64;
- struct tm t = *gmtime(&tmp_time);
+ struct tm ltm;
+ if (gmtime_r(&tmp_time, <m) == NULL) {
+ ASSERT(0);
+ }
switch (fmt) {
case XTYPE_FMT_DEFAULT:
case XTYPE_FMT_RAW:
sprintf(formatted_time_buf, "%"PRIu64, tmp_time_u64);
break;
case XTYPE_FMT_PRETTY:
- strftime(formatted_time_buf, FORMAT_TIME_SIZE, "%F %T", &t);
+ strftime(formatted_time_buf, FORMAT_TIME_SIZE, "%F %T", <m);
break;
default:
ASSERT(0);