]> granicus.if.org Git - php/commitdiff
Fixed wrong ext/filter behavior. It might not to register FastCGI environment variabl...
authorDmitry Stogov <dmitry@php.net>
Wed, 15 Nov 2006 11:14:27 +0000 (11:14 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 15 Nov 2006 11:14:27 +0000 (11:14 +0000)
sapi/cgi/cgi_main.c

index 63df1832a61df385b182af2f2e6f8a59295d0f13..906d955bd4b9af4e7d81e46e9726f5c06b7b0a50 100644 (file)
@@ -476,13 +476,14 @@ void cgi_php_import_environment_variables(zval *array_ptr TSRMLS_DC)
                uint var_len;
                char **val;
                ulong idx;
+               int filter_arg = (array_ptr == PG(http_globals)[TRACK_VARS_ENV])?PARSE_ENV:PARSE_SERVER;
 
                for (zend_hash_internal_pointer_reset_ex(&request->env, &pos);
                     zend_hash_get_current_key_ex(&request->env, &var, &var_len, &idx, 0, &pos) == HASH_KEY_IS_STRING &&
                     zend_hash_get_current_data_ex(&request->env, (void **) &val, &pos) == SUCCESS;
                     zend_hash_move_forward_ex(&request->env, &pos)) {
-                       int new_val_len;
-                       if (sapi_module.input_filter(PARSE_SERVER, var.s, val, strlen(*val), &new_val_len TSRMLS_CC)) {
+                       unsigned int new_val_len;
+                       if (sapi_module.input_filter(filter_arg, var.s, val, strlen(*val), &new_val_len TSRMLS_CC)) {
                                php_register_variable_safe(var.s, *val, new_val_len, array_ptr TSRMLS_CC);
                        }
                }
@@ -491,7 +492,7 @@ void cgi_php_import_environment_variables(zval *array_ptr TSRMLS_DC)
 
 static void sapi_cgi_register_variables(zval *track_vars_array TSRMLS_DC)
 {
-       int new_val_len;
+       unsigned int new_val_len;
        char *val = SG(request_info).request_uri ? SG(request_info).request_uri : "";
        /* In CGI mode, we consider the environment to be a part of the server
         * variables