sniper          Fri Feb  4 05:39:34 2005 EDT

  Modified files:              
    /php-src/sapi/cgi   cgi_main.c 
  Log:
  - 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/sapi/cgi/cgi_main.c?r1=1.259&r2=1.260&ty=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.259 php-src/sapi/cgi/cgi_main.c:1.260
--- php-src/sapi/cgi/cgi_main.c:1.259   Tue Jan 11 08:35:56 2005
+++ php-src/sapi/cgi/cgi_main.c Fri Feb  4 05:39:33 2005
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: cgi_main.c,v 1.259 2005/01/11 13:35:56 sniper Exp $ */
+/* $Id: cgi_main.c,v 1.260 2005/02/04 10:39:33 sniper Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -662,8 +662,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
@@ -691,7 +702,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