iliaa Wed Sep 25 08:20:56 2002 EDT Modified files: /php4/ext/standard datetime.c Log: prevent segv on Windows with negative localtime values. Index: php4/ext/standard/datetime.c diff -u php4/ext/standard/datetime.c:1.95 php4/ext/standard/datetime.c:1.96 --- php4/ext/standard/datetime.c:1.95 Sat Sep 21 11:41:20 2002 +++ php4/ext/standard/datetime.c Wed Sep 25 08:20:56 2002 @@ -19,7 +19,7 @@ */ -/* $Id: datetime.c,v 1.95 2002/09/21 15:41:20 iliaa Exp $ */ +/* $Id: datetime.c,v 1.96 2002/09/25 12:20:56 iliaa Exp $ */ #include "php.h" @@ -194,9 +194,13 @@ } t = mktime(ta); - if (t == -1) { + +#ifdef PHP_WIN32 + if (t < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Windows does not support +negative values for this function"); RETURN_LONG(-1); } +#endif seconds = t - chgsecs; @@ -646,7 +650,15 @@ assoc_array = Z_LVAL_PP(assoc_array_arg); break; } - if (timestamp < 0 || NULL == (ta = php_localtime_r(×tamp, &tmbuf))) { + +#ifdef PHP_WIN32 + if (timestamp < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Windows does not support +negative values for this function"); + RETURN_FALSE + } +#endif + + if (NULL == (ta = php_localtime_r(×tamp, &tmbuf))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid local time"); RETURN_FALSE; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php