sniper          Fri Feb  4 05:42:01 2005 EDT

  Modified files:              (Branch: PHP_4_3)
    /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.1247.2.827&r2=1.1247.2.828&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1247.2.827 php-src/NEWS:1.1247.2.828
--- php-src/NEWS:1.1247.2.827   Thu Feb  3 17:46:54 2005
+++ php-src/NEWS        Fri Feb  4 05:42:00 2005
@@ -63,6 +63,8 @@
   (wendland at scan-plus dot de)
 - Fixed bug #28451 (corupt EXIF headers have unlimited recursive IFD directory
   entries). (Andrei)
+- Fixed bug #28227 (PHP CGI depends upon non-standard SCRIPT_FILENAME). 
+  (lukem at NetBSD dot org)
 - Fixed bug #28086 (crash inside overload() function). (Tony) 
 - Fixed bug #28074 (FastCGI: stderr should be written in a FCGI stderr stream).
   (chris at ex-parrot dot com)
http://cvs.php.net/diff.php/php-src/sapi/cgi/cgi_main.c?r1=1.190.2.64&r2=1.190.2.65&ty=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.190.2.64 
php-src/sapi/cgi/cgi_main.c:1.190.2.65
--- php-src/sapi/cgi/cgi_main.c:1.190.2.64      Tue Jan 11 08:36:39 2005
+++ php-src/sapi/cgi/cgi_main.c Fri Feb  4 05:42:01 2005
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: cgi_main.c,v 1.190.2.64 2005/01/11 13:36:39 sniper Exp $ */
+/* $Id: cgi_main.c,v 1.190.2.65 2005/02/04 10:42:01 sniper Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -687,8 +687,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
@@ -716,7 +727,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