]> granicus.if.org Git - php/commitdiff
Fixed bug #16880. Added an ini option max_input_time that allows the user
authorIlia Alshanetsky <iliaa@php.net>
Mon, 21 Oct 2002 13:09:29 +0000 (13:09 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 21 Oct 2002 13:09:29 +0000 (13:09 +0000)
to specify how much time a script may spend parsing input data (POST, GET, etc..).

main/main.c
main/php_globals.h
php.ini-dist
php.ini-recommended

index 6176574d3b05e6be3628b8c9ec57828111276213..e112e63c1445f5e33cb936d549ed3dce021dd81c 100644 (file)
@@ -251,6 +251,7 @@ PHP_INI_BEGIN()
        STD_PHP_INI_BOOLEAN("html_errors",                      "1",            PHP_INI_ALL,            OnUpdateBool,                   html_errors,                    php_core_globals,       core_globals)
        STD_PHP_INI_BOOLEAN("xmlrpc_errors",            "0",            PHP_INI_SYSTEM,         OnUpdateBool,                   xmlrpc_errors,                  php_core_globals,       core_globals)
        STD_PHP_INI_ENTRY("xmlrpc_error_number",        "0",            PHP_INI_ALL,            OnUpdateInt,                    xmlrpc_error_number,    php_core_globals,       core_globals)
+       STD_PHP_INI_ENTRY("max_input_time",     "0",            PHP_INI_ALL,            OnUpdateInt,                    max_input_time, php_core_globals,       core_globals)
        STD_PHP_INI_BOOLEAN("ignore_user_abort",        "0",            PHP_INI_ALL,            OnUpdateBool,                   ignore_user_abort,              php_core_globals,       core_globals)
        STD_PHP_INI_BOOLEAN("implicit_flush",           "0",            PHP_INI_PERDIR|PHP_INI_SYSTEM,OnUpdateBool,     implicit_flush,                 php_core_globals,       core_globals)
        STD_PHP_INI_BOOLEAN("log_errors",                       "0",            PHP_INI_ALL,            OnUpdateBool,                   log_errors,                             php_core_globals,       core_globals)
@@ -835,7 +836,7 @@ int php_request_startup(TSRMLS_D)
                zend_activate(TSRMLS_C);
                sapi_activate(TSRMLS_C);
 
-               zend_set_timeout(EG(timeout_seconds));
+               zend_set_timeout(PG(max_input_time));
 
                if (PG(expose_php)) {
                        sapi_add_header(SAPI_PHP_VERSION_HEADER, sizeof(SAPI_PHP_VERSION_HEADER)-1, 1);
@@ -1539,6 +1540,8 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC)
 #if defined(ZEND_MULTIBYTE) && defined(HAVE_MBSTRING)
                php_mbstring_set_zend_encoding(TSRMLS_C);
 #endif /* ZEND_MULTIBYTE && HAVE_MBSTRING */
+               zend_unset_timeout(TSRMLS_C);
+               zend_set_timeout(EG(timeout_seconds));
                retval = (zend_execute_scripts(ZEND_REQUIRE TSRMLS_CC, NULL, 3, prepend_file_p, primary_file, append_file_p) == SUCCESS);
                
                if (old_primary_file_path) {
index 579201f75d286e5e54e3ac604a4f93927b3d5009..b24b1df8a7b5d5b3a9a2ade64a67c6ea3a24a6b1 100644 (file)
@@ -71,6 +71,7 @@ struct _php_core_globals {
        char *safe_mode_exec_dir;
 
        long memory_limit;
+       long max_input_time;
 
        zend_bool track_errors;
        zend_bool display_errors;
index 34d3b86032afd93b99d6a121d8e4433e3a06a0b8..61910638e60c8d7f851af327fd2059d0f1927722 100644 (file)
@@ -218,6 +218,7 @@ expose_php = On
 ;;;;;;;;;;;;;;;;;;;
 
 max_execution_time = 30     ; Maximum execution time of each script, in seconds
+max_input_time = 60    ; Maximum amount of time each script may spend parsing request data
 memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
index 9b378fb96da117274b3ec0d9ebecc1ef471b8744..20957460eb9e025ff03a014786af6a8b23c3f3b3 100644 (file)
@@ -232,6 +232,7 @@ expose_php = On
 ;;;;;;;;;;;;;;;;;;;
 
 max_execution_time = 30     ; Maximum execution time of each script, in seconds
+max_input_time = 60    ; Maximum amount of time each script may spend parsing request data
 memory_limit = 8M      ; Maximum amount of memory a script may consume (8MB)