dmitry          Wed Nov 15 11:13:03 2006 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/sapi/cgi   cgi_main.c 
  Log:
  Fixed wrong ext/filter behavior. It didn't register FastCGI environment 
variables and made memory leaks.
  
  
http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.267.2.15.2.16&r2=1.267.2.15.2.17&diff_format=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.16 
php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.17
--- php-src/sapi/cgi/cgi_main.c:1.267.2.15.2.16 Tue Nov 14 10:31:47 2006
+++ php-src/sapi/cgi/cgi_main.c Wed Nov 15 11:13:02 2006
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: cgi_main.c,v 1.267.2.15.2.16 2006/11/14 10:31:47 dmitry Exp $ */
+/* $Id: cgi_main.c,v 1.267.2.15.2.17 2006/11/15 11:13:02 dmitry Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -498,6 +498,7 @@
                char *var, **val;
                uint var_len;
                ulong idx;
+               int filter_arg = (array_ptr == 
PG(http_globals)[TRACK_VARS_ENV])?PARSE_ENV:PARSE_SERVER;
 
                /* turn off magic_quotes while importing environment variables 
*/
                PG(magic_quotes_gpc) = 0;
@@ -505,8 +506,8 @@
                     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, val, 
strlen(*val), &new_val_len TSRMLS_CC)) {
+                       unsigned int new_val_len;
+                       if (sapi_module.input_filter(filter_arg, var, val, 
strlen(*val), &new_val_len TSRMLS_CC)) {
                                php_register_variable_safe(var, *val, 
new_val_len, array_ptr TSRMLS_CC);
                        }
                }
@@ -517,7 +518,7 @@
 
 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

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to