From 9cc91f2d8d746e77947eeb2fd7af711a43c3a56a Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sat, 5 Sep 2015 21:49:16 +0200 Subject: [PATCH] aft.c: Prefer localtime() over localtime_r(). While localtime(3) is required to behave as though tzset(3) was called, localtime_r(3) does not have this requirement, and portable code should thus call tzset(3) before localtime_r(3). This is not the case for get_local_time() of aft.c. As we are single-threaded here, we don't need the thread-safe version, so it is easiest to switch to localtime(3). --- aft.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/aft.c b/aft.c index 8df2bc60..35e513ff 100644 --- a/aft.c +++ b/aft.c @@ -676,26 +676,27 @@ int load_afd(int shmid, struct audio_file_data *afd) static int get_local_time(uint64_t *seconds, char *buf, size_t size, time_t current_time, enum ls_listing_mode lm) { - struct tm t; + struct tm *tm; /* * Omit year but show time if the given value is closer to the current * time than this many seconds. */ const time_t m = 6 * 30 * 24 * 3600; /* six months */ - if (!localtime_r((time_t *)seconds, &t)) + tm = localtime((time_t *)seconds); + if (!tm) return -E_LOCALTIME; if (lm == LS_MODE_MBOX) { - if (!strftime(buf, size, "%c", &t)) + if (!strftime(buf, size, "%c", tm)) return -E_STRFTIME; return 1; } if (*seconds > current_time - m && *seconds < current_time + m) { - if (!strftime(buf, size, "%b %e %k:%M", &t)) + if (!strftime(buf, size, "%b %e %k:%M", tm)) return -E_STRFTIME; return 1; } - if (!strftime(buf, size, "%b %e %Y", &t)) + if (!strftime(buf, size, "%b %e %Y", tm)) return -E_STRFTIME; return 1; } -- 2.39.2