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(&timestamp, &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(&timestamp, &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

Reply via email to