mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Use thread-safe versions of localtime and gmtime
This commit is contained in:
parent
33bdf19051
commit
3e8303abf0
@ -151,11 +151,11 @@ int db_date_day(char *cp)
|
||||
|
||||
char *db_cur_date(char *cp)
|
||||
{
|
||||
struct tm *ctm;
|
||||
struct tm *ctm, tmbuf;
|
||||
time_t c_time;
|
||||
|
||||
c_time = time((time_t *)NULL);
|
||||
ctm = localtime(&c_time);
|
||||
ctm = localtime_r(&c_time, &tmbuf);
|
||||
if (cp == NULL)
|
||||
cp = (char *)malloc(9);
|
||||
|
||||
|
@ -533,13 +533,13 @@ int GetTimeInfo(TIMEINFO *Now)
|
||||
{
|
||||
static time_t NextHour;
|
||||
static long LastTzone;
|
||||
struct tm *tm;
|
||||
struct tm *tm, tmbuf;
|
||||
int secondsUntilNextHour;
|
||||
#if defined(HAVE_GETTIMEOFDAY)
|
||||
struct timeval tv;
|
||||
#endif /* defined(HAVE_GETTIMEOFDAY) */
|
||||
#if !defined(HAVE_TM_GMTOFF)
|
||||
struct tm local;
|
||||
struct tm local, tmbuf;
|
||||
struct tm gmt;
|
||||
#endif /* !defined(HAVE_TM_GMTOFF) */
|
||||
|
||||
@ -557,13 +557,13 @@ int GetTimeInfo(TIMEINFO *Now)
|
||||
|
||||
/* Now get the timezone if the last time < HH:00:00 <= now for some HH. */
|
||||
if (NextHour <= Now->time) {
|
||||
if ((tm = localtime(&Now->time)) == NULL)
|
||||
if ((tm = localtime_r(&Now->time, &tmbuf)) == NULL)
|
||||
return -1;
|
||||
secondsUntilNextHour = 60 * (60 - tm->tm_min) - tm->tm_sec;
|
||||
#if !defined(HAVE_TM_GMTOFF)
|
||||
/* To get the timezone, compare localtime with GMT. */
|
||||
local = *tm;
|
||||
if ((tm = gmtime(&Now->time)) == NULL)
|
||||
if ((tm = gmtime_r(&Now->time, &tmbuf)) == NULL)
|
||||
return -1;
|
||||
gmt = *tm;
|
||||
|
||||
@ -698,11 +698,11 @@ RelativeMonth(Start, RelMonth)
|
||||
time_t Start;
|
||||
time_t RelMonth;
|
||||
{
|
||||
struct tm *tm;
|
||||
struct tm *tm, tmbuf;
|
||||
time_t Month;
|
||||
time_t Year;
|
||||
|
||||
tm = localtime(&Start);
|
||||
tm = localtime_r(&Start, &tmbuf);
|
||||
Month = 12 * tm->tm_year + tm->tm_mon + RelMonth;
|
||||
Year = Month / 12;
|
||||
Year += 1900;
|
||||
@ -868,7 +868,7 @@ static int date_lex(void)
|
||||
time_t parsedate(char *p, TIMEINFO *now)
|
||||
{
|
||||
extern int date_parse();
|
||||
struct tm *tm;
|
||||
struct tm *tm, tmbuf;
|
||||
TIMEINFO ti;
|
||||
time_t Start;
|
||||
|
||||
@ -878,7 +878,7 @@ time_t parsedate(char *p, TIMEINFO *now)
|
||||
(void)GetTimeInfo(&ti);
|
||||
}
|
||||
|
||||
tm = localtime(&now->time);
|
||||
tm = localtime_r(&now->time, &tmbuf);
|
||||
yyYear = tm->tm_year + 1900;
|
||||
yyMonth = tm->tm_mon + 1;
|
||||
yyDay = tm->tm_mday;
|
||||
|
Loading…
Reference in New Issue
Block a user