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

Reply via email to