libspl: print_timestamp: use localtime_r()

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #13284
This commit is contained in:
наб 2022-04-04 13:59:48 +02:00 committed by Brian Behlendorf
parent 8ab279484f
commit ae3683ce11
1 changed files with 3 additions and 2 deletions

View File

@ -44,7 +44,7 @@ void
print_timestamp(uint_t timestamp_fmt) print_timestamp(uint_t timestamp_fmt)
{ {
time_t t = time(NULL); time_t t = time(NULL);
static char *fmt = NULL; static const char *fmt = NULL;
/* We only need to retrieve this once per invocation */ /* We only need to retrieve this once per invocation */
if (fmt == NULL) if (fmt == NULL)
@ -54,9 +54,10 @@ print_timestamp(uint_t timestamp_fmt)
(void) printf("%lld\n", (longlong_t)t); (void) printf("%lld\n", (longlong_t)t);
} else if (timestamp_fmt == DDATE) { } else if (timestamp_fmt == DDATE) {
char dstr[64]; char dstr[64];
struct tm tm;
int len; int len;
len = strftime(dstr, sizeof (dstr), fmt, localtime(&t)); len = strftime(dstr, sizeof (dstr), fmt, localtime_r(&t, &tm));
if (len > 0) if (len > 0)
(void) printf("%s\n", dstr); (void) printf("%s\n", dstr);
} }