Index: tls.c =================================================================== RCS file: /cvsroot/rsync/tls.c,v retrieving revision 1.36 diff -u -p -r1.36 tls.c --- tls.c 10 Jul 2007 13:55:50 -0000 1.36 +++ tls.c 25 Aug 2007 06:41:11 -0000 @@ -110,7 +110,7 @@ static void list_file(const char *fname) { STRUCT_STAT buf; char permbuf[PERMSTRING_SIZE]; - struct tm *mt; + struct tm tmbuf; char datebuf[50]; char linkbuf[4096]; @@ -149,16 +149,16 @@ static void list_file(const char *fname) permstring(permbuf, buf.st_mode); if (buf.st_mtime) { - mt = gmtime(&buf.st_mtime); + gmtime_r(&buf.st_mtime, &tmbuf); snprintf(datebuf, sizeof datebuf, "%04d-%02d-%02d %02d:%02d:%02d", - (int)mt->tm_year + 1900, - (int)mt->tm_mon + 1, - (int)mt->tm_mday, - (int)mt->tm_hour, - (int)mt->tm_min, - (int)mt->tm_sec); + (int)tmbuf.tm_year + 1900, + (int)tmbuf.tm_mon + 1, + (int)tmbuf.tm_mday, + (int)tmbuf.tm_hour, + (int)tmbuf.tm_min, + (int)tmbuf.tm_sec); } else strlcpy(datebuf, " ", sizeof datebuf); Index: util.c =================================================================== RCS file: /cvsroot/rsync/util.c,v retrieving revision 1.225 diff -u -p -r1.225 util.c --- util.c 10 Jul 2007 13:55:50 -0000 1.225 +++ util.c 25 Aug 2007 06:41:12 -0000 @@ -129,9 +129,13 @@ int set_modtime(const char *fname, time_ #endif if (verbose > 2) { + struct tm tmbuf; + char ascbuf[32]; + + localtime_r(&modtime, &tmbuf); + asctime_r(&tmbuf, ascbuf); rprintf(FINFO, "set modtime of %s to (%ld) %s", - fname, (long)modtime, - asctime(localtime(&modtime))); + fname, (long)modtime, ascbuf); } if (dry_run) @@ -1155,11 +1159,12 @@ char *human_dnum(double dnum, int decima char *timestring(time_t t) { static char TimeBuf[200]; - struct tm *tm = localtime(&t); + struct tm tmbuf; char *p; + localtime_r(&t, &tmbuf); #ifdef HAVE_STRFTIME - strftime(TimeBuf, sizeof TimeBuf - 1, "%Y/%m/%d %H:%M:%S", tm); + strftime(TimeBuf, sizeof TimeBuf - 1, "%Y/%m/%d %H:%M:%S", &tmbuf); #else strlcpy(TimeBuf, asctime(tm), sizeof TimeBuf); #endif