cvs: php4 /sapi/cgi cgi_main.c
| From: | Shane Caraveo | Date: | Fri, 01 Mar 2002 00:19:03 +0000 |
| Subject: | cvs: php4 /sapi/cgi cgi_main.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-9518@lists.php.net to get a copy of this message | ||
shane Thu Feb 28 19:19:03 2002 EDT
Modified files:
/php4/sapi/cgi cgi_main.c
Log:
fix force redirect crash under multithreaded compile
should be discused: fix redirect detection to only work with apache or netscape,
where we know they set an environment variable regarding redirect. IIS has
no security issue here. Don't know about other windows web servers.
Index: php4/sapi/cgi/cgi_main.c
diff -u php4/sapi/cgi/cgi_main.c:1.145 php4/sapi/cgi/cgi_main.c:1.146
--- php4/sapi/cgi/cgi_main.c:1.145 Fri Feb 15 04:06:45 2002
+++ php4/sapi/cgi/cgi_main.c Thu Feb 28 19:19:01 2002
@@ -453,8 +453,20 @@
ap_php_optarg = orig_optarg;
}
+
+#ifdef ZTS
+ compiler_globals = ts_resource(compiler_globals_id);
+ executor_globals = ts_resource(executor_globals_id);
+ core_globals = ts_resource(core_globals_id);
+ sapi_globals = ts_resource(sapi_globals_id);
+ tsrm_ls = ts_resource(0);
+#endif
+
/* startup after we get the above ini override se we get things right */
if (php_module_startup(&cgi_sapi_module)==FAILURE) {
+#ifdef ZTS
+ tsrm_shutdown();
+#endif
return FAILURE;
}
@@ -467,7 +479,13 @@
* http://www.koehntopp.de/php.
* -- kk@netuse.de
*/
- if (!getenv("REDIRECT_STATUS") && !getenv ("HTTP_REDIRECT_STATUS")) {
+ if (!getenv("REDIRECT_STATUS") && !getenv ("HTTP_REDIRECT_STATUS")
+#ifdef PHP_WIN32
+ /* IIS doesn't set anything, look to see if php.exe is in the script_name
*/
+ && (strstr(getenv("SERVER_SOFTWARE"),"Apache") ||
+ strstr(getenv("SERVER_SOFTWARE"),"iPlanet"))
+#endif
+ ) {
PUTS("<b>Security Alert!</b> PHP CGI cannot be accessed directly.\n\
\n\
<P>This PHP CGI binary was compiled with force-cgi-redirect enabled. This\n\
@@ -484,19 +502,15 @@
\n");
/* remove that detailed explanation some time */
+#ifdef ZTS
+ tsrm_shutdown();
+#endif
return FAILURE;
}
}
#endif /* FORCE_CGI_REDIRECT */
-#ifdef ZTS
- compiler_globals = ts_resource(compiler_globals_id);
- executor_globals = ts_resource(executor_globals_id);
- core_globals = ts_resource(core_globals_id);
- sapi_globals = ts_resource(sapi_globals_id);
- tsrm_ls = ts_resource(0);
-#endif
zend_first_try {
if (!cgi) {