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