From: Antony Dovgal Date: Thu, 7 Jun 2007 09:07:36 +0000 (+0000) Subject: MFH: php_localtime_r() checks X-Git-Tag: php-5.2.4RC1~387 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=074b58b7f1ed52850c96f603e318e6496b82442e;p=php MFH: php_localtime_r() checks --- diff --git a/ext/calendar/easter.c b/ext/calendar/easter.c index 6329986e4a..ed28931ae0 100644 --- a/ext/calendar/easter.c +++ b/ext/calendar/easter.c @@ -36,10 +36,14 @@ static void _cal_easter(INTERNAL_FUNCTION_PARAMETERS, int gm) /* Default to the current year if year parameter is not given */ { time_t a; - struct tm b; + struct tm b, *res; time(&a); - php_localtime_r(&a, &b); - year = 1900 + b.tm_year; + res = php_localtime_r(&a, &b); + if (!res) { + year = 1900; + } else { + year = 1900 + b.tm_year; + } } if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, diff --git a/ext/pdo_sqlite/sqlite/src/date.c b/ext/pdo_sqlite/sqlite/src/date.c index a5446e128e..2dcab69533 100644 --- a/ext/pdo_sqlite/sqlite/src/date.c +++ b/ext/pdo_sqlite/sqlite/src/date.c @@ -417,6 +417,9 @@ static double localtimeOffset(DateTime *p){ t = (x.rJD-2440587.5)*86400.0 + 0.5; sqlite3OsEnterMutex(); pTm = php_localtime_r(&t, &tmbuf); + if (!pTm) { + return 0; + } y.Y = pTm->tm_year + 1900; y.M = pTm->tm_mon + 1; y.D = pTm->tm_mday; diff --git a/ext/sqlite/libsqlite/src/date.c b/ext/sqlite/libsqlite/src/date.c index 9fb075d43e..cd6761b66a 100644 --- a/ext/sqlite/libsqlite/src/date.c +++ b/ext/sqlite/libsqlite/src/date.c @@ -420,6 +420,9 @@ static double localtimeOffset(DateTime *p){ t = (x.rJD-2440587.5)*86400.0 + 0.5; sqliteOsEnterMutex(); pTm = php_localtime_r(&t, &tmbuf); + if (!pTm) { + return 0; + } y.Y = pTm->tm_year + 1900; y.M = pTm->tm_mon + 1; y.D = pTm->tm_mday; diff --git a/ext/standard/info.c b/ext/standard/info.c index a3b349177d..eb587366a0 100644 --- a/ext/standard/info.c +++ b/ext/standard/info.c @@ -1066,7 +1066,7 @@ PHPAPI char *php_logo_guid() the_time = time(NULL); ta = php_localtime_r(&the_time, &tmbuf); - if ((ta->tm_mon==3) && (ta->tm_mday==1)) { + if (ta && (ta->tm_mon==3) && (ta->tm_mday==1)) { logo_guid = PHP_EGG_LOGO_GUID; } else { logo_guid = PHP_LOGO_GUID; diff --git a/ext/xmlrpc/libxmlrpc/xmlrpc.c b/ext/xmlrpc/libxmlrpc/xmlrpc.c index 2a5600290b..d263ab6878 100644 --- a/ext/xmlrpc/libxmlrpc/xmlrpc.c +++ b/ext/xmlrpc/libxmlrpc/xmlrpc.c @@ -43,6 +43,9 @@ static const char rcsid[] = "#(@) $Id$"; * 9/1999 - 10/2000 * HISTORY * $Log$ + * Revision 1.8.4.1 2006/11/30 16:38:37 iliaa + * last set of zts fixes + * * Revision 1.8 2005/03/28 00:07:24 edink * Reshufle includes to make it compile on windows * @@ -233,6 +236,9 @@ static int date_from_ISO8601 (const char *text, time_t * value) { static int date_to_ISO8601 (time_t value, char *buf, int length) { struct tm *tm, tmbuf; tm = php_localtime_r(&value, &tmbuf); + if (!tm) { + return 0; + } #if 0 /* TODO: soap seems to favor this method. xmlrpc the latter. */ return strftime (buf, length, "%Y-%m-%dT%H:%M:%SZ", tm); #else