Hi Ilia,

CGI is even doesn't compile after you patch.

Dmitry.


> -----Original Message-----
> From: Ilia Alshanetsky [mailto:[EMAIL PROTECTED] 
> Sent: Monday, October 23, 2006 11:18 PM
> To: php-cvs@lists.php.net
> Subject: [PHP-CVS] cvs: php-src /sapi/apache mod_php5.c 
> /sapi/apache2filter sapi_apache2.c /sapi/apache2handler 
> sapi_apache2.c /sapi/cgi cgi_main.c 
> 
> 
> iliaa         Mon Oct 23 19:17:51 2006 UTC
> 
>   Modified files:              
>     /php-src/sapi/apache      mod_php5.c 
>     /php-src/sapi/apache2filter       sapi_apache2.c 
>     /php-src/sapi/apache2handler      sapi_apache2.c 
>     /php-src/sapi/cgi cgi_main.c 
>   Log:
>   Added filter support for $_SERVER in cgi/apache2 sapis
>   Make sure PHP_SELF if filtered in Apache 1 sapi
>   
>   
> http://cvs.php.net/viewvc.cgi/php-src/sapi/apache/mod_php5.c?r
> 1=1.39&r2=1.40&diff_format=u
> Index: php-src/sapi/apache/mod_php5.c
> diff -u php-src/sapi/apache/mod_php5.c:1.39 
> php-src/sapi/apache/mod_php5.c:1.40
> --- php-src/sapi/apache/mod_php5.c:1.39       Thu Oct 12 20:13:07 2006
> +++ php-src/sapi/apache/mod_php5.c    Mon Oct 23 19:17:50 2006
> @@ -17,7 +17,7 @@
>     | PHP 4.0 patches by Zeev Suraski <[EMAIL PROTECTED]>         
>              |
>     
> +-------------------------------------------------------------
> ---------+
>   */
> -/* $Id: mod_php5.c,v 1.39 2006/10/12 20:13:07 bfrance Exp $ */
> +/* $Id: mod_php5.c,v 1.40 2006/10/23 19:17:50 iliaa Exp $ */
>  
>  #include "php_apache_http.h"
>  #include "http_conf_globals.h"
> @@ -242,10 +242,11 @@
>       table_entry *elts = (table_entry *) arr->elts;
>       zval **path_translated;
>       HashTable *symbol_table;
> +     int new_val_len;
>  
>       for (i = 0; i < arr->nelts; i++) {
>               char *val;
> -             int val_len, new_val_len;
> +             int val_len;
>  
>               if (elts[i].val) {
>                       val = elts[i].val;
> @@ -270,7 +271,9 @@
>               php_register_variable("PATH_TRANSLATED", 
> Z_STRVAL_PP(path_translated), track_vars_array TSRMLS_CC);
>       }
>  
> -     php_register_variable("PHP_SELF", ((request_rec *) 
> SG(server_context))->uri, track_vars_array TSRMLS_CC);
> +     if (sapi_module.input_filter(PARSE_SERVER, "PHP_SELF", 
> &((request_rec *) SG(server_context))->uri, 
> strlen(((request_rec *) SG(server_context))->uri), 
> &new_val_len TSRMLS_CC)) {
> +             php_register_variable("PHP_SELF", ((request_rec 
> *) SG(server_context))->uri, track_vars_array TSRMLS_CC);
> +     }
>  }
>  /* }}} */
>  
> http://cvs.php.net/viewvc.cgi/php-src/sapi/apache2filter/sapi_
> apache2.c?r1=1.141&r2=1.142&diff_format=u
> Index: php-src/sapi/apache2filter/sapi_apache2.c
> diff -u php-src/sapi/apache2filter/sapi_apache2.c:1.141 
> php-src/sapi/apache2filter/sapi_apache2.c:1.142
> --- php-src/sapi/apache2filter/sapi_apache2.c:1.141   Tue Jul 
> 25 13:41:08 2006
> +++ php-src/sapi/apache2filter/sapi_apache2.c Mon Oct 23 19:17:50 2006
> @@ -18,7 +18,7 @@
>     
> +-------------------------------------------------------------
> ---------+
>   */
>  
> -/* $Id: sapi_apache2.c,v 1.141 2006/07/25 13:41:08 dmitry Exp $ */
> +/* $Id: sapi_apache2.c,v 1.142 2006/10/23 19:17:50 iliaa Exp $ */
>  
>  #include <fcntl.h>
>  
> @@ -220,11 +220,18 @@
>       char *key, *val;
>       
>       APR_ARRAY_FOREACH_OPEN(arr, key, val)
> -             if (!val) val = "";
> -             php_register_variable(key, val, 
> track_vars_array TSRMLS_CC);
> +             if (!val) {
> +                     val = "";
> +             }
> +             if (sapi_module.input_filter(PARSE_SERVER, key, 
> &val, strlen(val), &new_val_len TSRMLS_CC)) {
> +                     php_register_variable_safe(key, val, 
> new_val_len, track_vars_array TSRMLS_CC);
> +             }
>       APR_ARRAY_FOREACH_CLOSE()
>               
>       php_register_variable("PHP_SELF", ctx->r->uri, 
> track_vars_array TSRMLS_CC);
> +     if (sapi_module.input_filter(PARSE_SERVER, "PHP_SELF", 
> &ctx->r->uri, strlen(ctx->r->uri), &new_val_len TSRMLS_CC)) {
> +             php_register_variable_safe("PHP_SELF", 
> ctx->r->uri, new_val_len, track_vars_array TSRMLS_CC);
> +     }
>  }
>  
>  static void 
> http://cvs.php.net/viewvc.cgi/php-src/sapi/apache2handler/sapi
> _apache2.c?r1=1.74&r2=1.75&diff_format=u
> Index: php-src/sapi/apache2handler/sapi_apache2.c
> diff -u php-src/sapi/apache2handler/sapi_apache2.c:1.74 
> php-src/sapi/apache2handler/sapi_apache2.c:1.75
> --- php-src/sapi/apache2handler/sapi_apache2.c:1.74   Thu Aug 
> 10 13:43:59 2006
> +++ php-src/sapi/apache2handler/sapi_apache2.c        Mon Oct 
> 23 19:17:51 2006
> @@ -18,7 +18,7 @@
>     
> +-------------------------------------------------------------
> ---------+
>   */
>  
> -/* $Id: sapi_apache2.c,v 1.74 2006/08/10 13:43:59 tony2001 Exp $ */
> +/* $Id: sapi_apache2.c,v 1.75 2006/10/23 19:17:51 iliaa Exp $ */
>  
>  #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
>  
> @@ -232,13 +232,20 @@
>       php_struct *ctx = SG(server_context);
>       const apr_array_header_t *arr = 
> apr_table_elts(ctx->r->subprocess_env);
>       char *key, *val;
> +     int new_val_len;
>  
>       APR_ARRAY_FOREACH_OPEN(arr, key, val)
> -             if (!val) val = "";
> -             php_register_variable(key, val, 
> track_vars_array TSRMLS_CC);
> +             if (!val) {
> +                     val = "";
> +             }
> +             if (sapi_module.input_filter(PARSE_SERVER, key, 
> &val, strlen(val), &new_val_len TSRMLS_CC)) {
> +                     php_register_variable_safe(key, val, 
> new_val_len, track_vars_array TSRMLS_CC);
> +             }
>       APR_ARRAY_FOREACH_CLOSE()
>  
> -     php_register_variable("PHP_SELF", ctx->r->uri, 
> track_vars_array TSRMLS_CC);
> +     if (sapi_module.input_filter(PARSE_SERVER, "PHP_SELF", 
> &ctx->r->uri, strlen(ctx->r->uri), &new_val_len TSRMLS_CC)) {
> +             php_register_variable_safe("PHP_SELF", 
> ctx->r->uri, new_val_len, track_vars_array TSRMLS_CC);
> +     }
>  }
>  
>  static void 
> http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1
> .300&r2=1.301&diff_format=u
> Index: php-src/sapi/cgi/cgi_main.c
> diff -u php-src/sapi/cgi/cgi_main.c:1.300 
> php-src/sapi/cgi/cgi_main.c:1.301
> --- php-src/sapi/cgi/cgi_main.c:1.300 Sat Sep 23 12:27:35 2006
> +++ php-src/sapi/cgi/cgi_main.c       Mon Oct 23 19:17:51 2006
> @@ -21,7 +21,7 @@
>     
> +-------------------------------------------------------------
> ---------+
>  */
>  
> -/* $Id: cgi_main.c,v 1.300 2006/09/23 12:27:35 tony2001 Exp $ */
> +/* $Id: cgi_main.c,v 1.301 2006/10/23 19:17:51 iliaa Exp $ */
>  
>  #include "php.h"
>  #include "php_globals.h"
> @@ -467,19 +467,26 @@
>                    
> 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)) {
> -                     php_register_variable(var.s, *val, 
> array_ptr TSRMLS_CC);
> +                     int new_val_len;
> +                     if 
> (sapi_module.input_filter(PARSE_SERVER, var.s, val, 
> strlen(*val), &new_val_len TSRMLS_CC)) {
> +                             
> php_register_variable_safe(var.s, *val, new_val_len, 
> array_ptr TSRMLS_CC);
> +                     }
>               }
>       }
>  }
>  
>  static void sapi_cgi_register_variables(zval 
> *track_vars_array TSRMLS_DC)  {
> +     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_import_environment_variables(track_vars_array TSRMLS_CC);
>       /* Build the special-case PHP_SELF variable for the CGI 
> version */
> -     php_register_variable("PHP_SELF", 
> (SG(request_info).request_uri ? SG(request_info).request_uri 
> : ""), track_vars_array TSRMLS_CC);
> +     if (sapi_module.input_filter(PARSE_SERVER, "PHP_SELF", 
> &val, strlen(val), &new_val_len TSRMLS_CC)) {
> +             php_register_variable_safe("PHP_SELF", var, 
> new_val_len, track_vars_array TSRMLS_CC);
> +     }
>  }
>  
>  static void sapi_cgi_log_message(char *message)
> 
> -- 
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

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

Reply via email to