diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/calendar/cal_unix.c | 4 | ||||
| -rw-r--r-- | ext/date/php_date.c | 8 | ||||
| -rw-r--r-- | ext/mime_magic/mime_magic.c | 3 |
3 files changed, 12 insertions, 3 deletions
diff --git a/ext/calendar/cal_unix.c b/ext/calendar/cal_unix.c index 97c138df2d..4efe16eeeb 100644 --- a/ext/calendar/cal_unix.c +++ b/ext/calendar/cal_unix.c @@ -50,6 +50,10 @@ PHP_FUNCTION(unixtojd) } ta = php_localtime_r(&t, &tmbuf); + if (!ta) { + RETURN_FALSE; + } + jdate = GregorianToSdn(ta->tm_year+1900, ta->tm_mon+1, ta->tm_mday); RETURN_LONG(jdate); diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 49f76d6a06..a1159691d1 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -578,16 +578,18 @@ static char* guess_timezone(const timelib_tzdb *tzdb TSRMLS_DC) { struct tm *ta, tmbuf; time_t the_time; - char *tzid; + char *tzid = NULL; the_time = time(NULL); ta = php_localtime_r(&the_time, &tmbuf); - tzid = timelib_timezone_id_from_abbr(ta->tm_zone, ta->tm_gmtoff, ta->tm_isdst); + if (ta) { + tzid = timelib_timezone_id_from_abbr(ta->tm_zone, ta->tm_gmtoff, ta->tm_isdst); + } if (! tzid) { tzid = "UTC"; } - php_error_docref(NULL TSRMLS_CC, E_STRICT, DATE_TZ_ERRMSG "We selected '%s' for '%s/%.1f/%s' instead", tzid, ta->tm_zone, (float) (ta->tm_gmtoff / 3600), ta->tm_isdst ? "DST" : "no DST"); + php_error_docref(NULL TSRMLS_CC, E_STRICT, DATE_TZ_ERRMSG "We selected '%s' for '%s/%.1f/%s' instead", tzid, ta ? ta->tm_zone : "Unknown", ta ? (float) (ta->tm_gmtoff / 3600) : 0, ta ? (ta->tm_isdst ? "DST" : "no DST") : "Unknown"); return tzid; } #endif diff --git a/ext/mime_magic/mime_magic.c b/ext/mime_magic/mime_magic.c index cb7be9950b..3828e43d47 100644 --- a/ext/mime_magic/mime_magic.c +++ b/ext/mime_magic/mime_magic.c @@ -1764,6 +1764,9 @@ static void mprint(union VALUETYPE *p, struct magic *m) { char ctimebuf[52]; pp = php_ctime_r((time_t *) &p->l, ctimebuf); + if (!pp) { + return; + } if ((rt = strchr(pp, '\n')) != NULL) { *rt = '\0'; } |
