summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2012-02-14 13:31:23 +0000
committerDmitry Stogov <dmitry@php.net>2012-02-14 13:31:23 +0000
commit106e88b3db8b2b731a54017f76a075eb38e59c7e (patch)
treea34827e9f2882cb193b54b5686c9d10adbca0705
parentf60145a1a2ac4ae0e5761ccb027aa191f000a4e5 (diff)
downloadphp-git-106e88b3db8b2b731a54017f76a075eb38e59c7e.tar.gz
Fixed reinitialization of SAPI callbacks after php_module_startup()
-rw-r--r--NEWS4
-rw-r--r--sapi/cgi/cgi_main.c16
2 files changed, 13 insertions, 7 deletions
diff --git a/NEWS b/NEWS
index 613d918866..269d9993dc 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,10 @@ PHP NEWS
. Fixed bug #60965 (Buffer overflow on htmlspecialchars/entities with
$double=false). (Gustavo)
+- CGI/FastCGI SAPI
+ . Fixed reinitialization of SAPI callbacks after php_module_startup().
+ (Dmitry)
+
02 Feb 2012, PHP 5.4.0 RC 7
- Core:
. Fixed bug #60895 (Possible invalid handler usage in windows random
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c
index d43b19da66..1e403870c3 100644
--- a/sapi/cgi/cgi_main.c
+++ b/sapi/cgi/cgi_main.c
@@ -1860,6 +1860,15 @@ int main(int argc, char *argv[])
php_optind = orig_optind;
php_optarg = orig_optarg;
+ if (fastcgi || bindpath) {
+ /* Override SAPI callbacks */
+ cgi_sapi_module.ub_write = sapi_fcgi_ub_write;
+ cgi_sapi_module.flush = sapi_fcgi_flush;
+ cgi_sapi_module.read_post = sapi_fcgi_read_post;
+ cgi_sapi_module.getenv = sapi_fcgi_getenv;
+ cgi_sapi_module.read_cookies = sapi_fcgi_read_cookies;
+ }
+
#ifdef ZTS
SG(request_info).path_translated = NULL;
#endif
@@ -1929,13 +1938,6 @@ consult the installation file that came with this distribution, or visit \n\
fastcgi = fcgi_is_fastcgi();
}
if (fastcgi) {
- /* Override SAPI callbacks */
- sapi_module.ub_write = sapi_fcgi_ub_write;
- sapi_module.flush = sapi_fcgi_flush;
- sapi_module.read_post = sapi_fcgi_read_post;
- sapi_module.getenv = sapi_fcgi_getenv;
- sapi_module.read_cookies = sapi_fcgi_read_cookies;
-
/* How many times to run PHP scripts before dying */
if (getenv("PHP_FCGI_MAX_REQUESTS")) {
max_requests = atoi(getenv("PHP_FCGI_MAX_REQUESTS"));