sniper Fri Feb 4 05:41:02 2005 EDT Modified files: (Branch: PHP_5_0) /php-src NEWS /php-src/sapi/cgi cgi_main.c Log: MFH: - Fixed bug #28227 (PHP CGI depends upon non-standard SCRIPT_FILENAME) # Patch by: lukem at NetBSD dot org http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.231&r2=1.1760.2.232&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1760.2.231 php-src/NEWS:1.1760.2.232 --- php-src/NEWS:1.1760.2.231 Thu Feb 3 17:46:22 2005 +++ php-src/NEWS Fri Feb 4 05:41:01 2005 @@ -95,6 +95,8 @@ entries). (Andrei) - Fixed bug #28444 (Cannot access undefined property for object with overloaded property access). (Dmitry) +- Fixed bug #28227 (PHP CGI depends upon non-standard SCRIPT_FILENAME). + (lukem at NetBSD dot org) - Fixed bug #28074 (FastCGI: stderr should be written in a FCGI stderr stream). (chris at ex-parrot dot com) - Fixed bug #28041 (SOAP HTTP Digest Access Authentication). (Dmitry) http://cvs.php.net/diff.php/php-src/sapi/cgi/cgi_main.c?r1=1.256.2.2&r2=1.256.2.3&ty=u Index: php-src/sapi/cgi/cgi_main.c diff -u php-src/sapi/cgi/cgi_main.c:1.256.2.2 php-src/sapi/cgi/cgi_main.c:1.256.2.3 --- php-src/sapi/cgi/cgi_main.c:1.256.2.2 Tue Jan 11 08:36:16 2005 +++ php-src/sapi/cgi/cgi_main.c Fri Feb 4 05:41:02 2005 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: cgi_main.c,v 1.256.2.2 2005/01/11 13:36:16 sniper Exp $ */ +/* $Id: cgi_main.c,v 1.256.2.3 2005/02/04 10:41:02 sniper Exp $ */ #include "php.h" #include "php_globals.h" @@ -661,8 +661,19 @@ { char *env_script_filename = sapi_cgibin_getenv("SCRIPT_FILENAME",0 TSRMLS_CC); char *env_path_translated = sapi_cgibin_getenv("PATH_TRANSLATED",0 TSRMLS_CC); + char *env_script_name = sapi_cgibin_getenv("SCRIPT_NAME", 0 TSRMLS_CC); char *script_path_translated = env_script_filename; + /* + * CGI/1.1, as documented at: http://cgi-spec.golux.com/ + * mentions SCRIPT_NAME but not SCRIPT_FILENAME. + */ + if (!script_path_translated && env_script_name && *env_script_name == '/') { + env_script_filename = _sapi_cgibin_putenv("SCRIPT_FILENAME",(env_script_name + 1) TSRMLS_CC); + + script_path_translated = env_script_filename; + } + #if !DISCARD_PATH /* some broken servers do not have script_filename or argv0 an example, IIS configured in some ways. then they do more @@ -690,7 +701,6 @@ char *content_length = sapi_cgibin_getenv("CONTENT_LENGTH",0 TSRMLS_CC); char *content_type = sapi_cgibin_getenv("CONTENT_TYPE",0 TSRMLS_CC); char *env_path_info = sapi_cgibin_getenv("PATH_INFO",0 TSRMLS_CC); - char *env_script_name = sapi_cgibin_getenv("SCRIPT_NAME",0 TSRMLS_CC); #if ENABLE_PATHINFO_CHECK struct stat st; char *env_redirect_url = sapi_cgibin_getenv("REDIRECT_URL",0 TSRMLS_CC);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php