s3: Use localtime_r, libreplace defines it
authorVolker Lendecke <vl@samba.org>
Sat, 27 Nov 2010 18:52:11 +0000 (19:52 +0100)
committerVolker Lendecke <vlendec@samba.org>
Sat, 27 Nov 2010 19:50:27 +0000 (20:50 +0100)
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Sat Nov 27 20:50:27 CET 2010 on sn-devel-104

source3/utils/net_cache.c

index fef269d77d5e80a4b1b7152df2a907c43802137f..4339094489b5891868fb8a9b1c2854093dc00977 100644 (file)
@@ -39,24 +39,22 @@ static void print_cache_entry(const char* keystr, const char* datastr,
        char *timeout_str;
        char *alloc_str = NULL;
        time_t now_t = time(NULL);
-       struct tm timeout_tm, *now_tm;
-       /* localtime returns statically allocated pointer, so timeout_tm
-          has to be copied somewhere else */
+       struct tm timeout_tm, now_tm;
+       struct tm *ptimeout_tm, *pnow_tm;
 
-       now_tm = localtime(&timeout);
-       if (!now_tm) {
+       ptimeout_tm = localtime_r(&timeout, &timeout_tm);
+       if (ptimeout_tm == NULL) {
                return;
        }
-       memcpy(&timeout_tm, now_tm, sizeof(struct tm));
-       now_tm = localtime(&now_t);
-       if (!now_tm) {
+       pnow_tm = localtime_r(&now_t, &now_tm);
+       if (pnow_tm == NULL) {
                return;
        }
 
        /* form up timeout string depending whether it's today's date or not */
-       if (timeout_tm.tm_year != now_tm->tm_year ||
-                       timeout_tm.tm_mon != now_tm->tm_mon ||
-                       timeout_tm.tm_mday != now_tm->tm_mday) {
+       if (timeout_tm.tm_year != now_tm.tm_year ||
+                       timeout_tm.tm_mon != now_tm.tm_mon ||
+                       timeout_tm.tm_mday != now_tm.tm_mday) {
 
                timeout_str = asctime(&timeout_tm);
                if (!timeout_str) {