lbarnaud                Thu Jul 24 09:12:45 2008 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/ext/filter/tests   bug44779.phpt 

  Modified files:              
    /php-src    NEWS 
    /php-src/sapi/cli   php_cli.c 
  Log:
  MFH: Allow filters to work on INPUT_SERVER in CLI (bug #44779)
  
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.215&r2=1.2027.2.547.2.965.2.216&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.965.2.215 
php-src/NEWS:1.2027.2.547.2.965.2.216
--- php-src/NEWS:1.2027.2.547.2.965.2.215       Wed Jul 23 19:50:47 2008
+++ php-src/NEWS        Thu Jul 24 09:12:45 2008
@@ -229,6 +229,7 @@
 - Fixed bug #44849 (imagecolorclosesthwb() is not available on Windows).
   (Kalle)
 - Fixed bug #44805 (rename() function is not portable to Windows). (Pierre)
+- Fixed bug #44779 (filter returns NULL in CLI when it shouldn't). (Arnaud)
 - Fixed bug #44742 (timezone_offset_get() causes segmentation faults). (Derick)
 - Fixed bug #44648 (Attribute names not checked for wellformedness). (Rob)
 - Fixed bug #44414 (Incomplete reporting about abstract methods). (Dmitry)
http://cvs.php.net/viewvc.cgi/php-src/sapi/cli/php_cli.c?r1=1.129.2.13.2.22.2.10&r2=1.129.2.13.2.22.2.11&diff_format=u
Index: php-src/sapi/cli/php_cli.c
diff -u php-src/sapi/cli/php_cli.c:1.129.2.13.2.22.2.10 
php-src/sapi/cli/php_cli.c:1.129.2.13.2.22.2.11
--- php-src/sapi/cli/php_cli.c:1.129.2.13.2.22.2.10     Wed Jul 23 11:25:14 2008
+++ php-src/sapi/cli/php_cli.c  Thu Jul 24 09:12:45 2008
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_cli.c,v 1.129.2.13.2.22.2.10 2008/07/23 11:25:14 tony2001 Exp $ */
+/* $Id: php_cli.c,v 1.129.2.13.2.22.2.11 2008/07/24 09:12:45 lbarnaud Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -292,19 +292,35 @@
 
 static void sapi_cli_register_variables(zval *track_vars_array TSRMLS_DC) /* 
{{{ */
 {
+       size_t len;
+       char   *docroot = "";
+
        /* 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 CLI version */
-       php_register_variable("PHP_SELF", php_self, track_vars_array TSRMLS_CC);
-       php_register_variable("SCRIPT_NAME", php_self, track_vars_array 
TSRMLS_CC);
+       len = strlen(php_self);
+       if (sapi_module.input_filter(PARSE_SERVER, "PHP_SELF", &php_self, len, 
&len TSRMLS_CC)) {
+               php_register_variable("PHP_SELF", php_self, track_vars_array 
TSRMLS_CC);
+       }
+       if (sapi_module.input_filter(PARSE_SERVER, "SCRIPT_NAME", &php_self, 
len, &len TSRMLS_CC)) {
+               php_register_variable("SCRIPT_NAME", php_self, track_vars_array 
TSRMLS_CC);
+       }
        /* filenames are empty for stdin */
-       php_register_variable("SCRIPT_FILENAME", script_filename, 
track_vars_array TSRMLS_CC);
-       php_register_variable("PATH_TRANSLATED", script_filename, 
track_vars_array TSRMLS_CC);
+       len = strlen(script_filename);
+       if (sapi_module.input_filter(PARSE_SERVER, "SCRIPT_FILENAME", 
&script_filename, len, &len TSRMLS_CC)) {
+               php_register_variable("SCRIPT_FILENAME", script_filename, 
track_vars_array TSRMLS_CC);
+       }
+       if (sapi_module.input_filter(PARSE_SERVER, "PATH_TRANSLATED", 
&script_filename, len, &len TSRMLS_CC)) {
+               php_register_variable("PATH_TRANSLATED", script_filename, 
track_vars_array TSRMLS_CC);
+       }
        /* just make it available */
-       php_register_variable("DOCUMENT_ROOT", "", track_vars_array TSRMLS_CC);
+       len = 0U;
+       if (sapi_module.input_filter(PARSE_SERVER, "DOCUMENT_ROOT", &docroot, 
len, &len TSRMLS_CC)) {
+               php_register_variable("DOCUMENT_ROOT", docroot, 
track_vars_array TSRMLS_CC);
+       }
 }
 /* }}} */
 

http://cvs.php.net/viewvc.cgi/php-src/ext/filter/tests/bug44779.phpt?view=markup&rev=1.1
Index: php-src/ext/filter/tests/bug44779.phpt
+++ php-src/ext/filter/tests/bug44779.phpt
--TEST--
Bug #44779 (filter returns NULL in CLI when it shouldn't)
--FILE--
<?php
var_dump(filter_input(INPUT_SERVER, "PHP_SELF"));
?>
--EXPECTF--
%unicode|string%(%d) "%s"



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

Reply via email to