]> granicus.if.org Git - php/commitdiff
MFB51: Fixed bug #36458 (sleep() accepts negative values).
authorIlia Alshanetsky <iliaa@php.net>
Tue, 21 Feb 2006 15:32:34 +0000 (15:32 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 21 Feb 2006 15:32:34 +0000 (15:32 +0000)
ext/standard/basic_functions.c

index ea54c279679dce2e2e22aca4ccfe7bfda3d243b1..1738fb9a744fa471c6bc75f67bb94fd8b466978b 100644 (file)
@@ -1677,17 +1677,19 @@ PHP_FUNCTION(flush)
    Delay for a given number of seconds */
 PHP_FUNCTION(sleep)
 {
-       zval **num;
+       long num;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE) {
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &num) == FAILURE) {
+               RETURN_FALSE;
+       }
+       if (num < 0) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number of seconds must be greater than or equal to 0");
+               RETURN_FALSE;
        }
-
-       convert_to_long_ex(num);
 #ifdef PHP_SLEEP_NON_VOID
-       RETURN_LONG(php_sleep(Z_LVAL_PP(num)));
+       RETURN_LONG(php_sleep(num));
 #else
-       php_sleep(Z_LVAL_PP(num));
+       php_sleep(num);
 #endif
 
 }