]> granicus.if.org Git - php/commitdiff
Fixed reinitialization of SAPI callbacks after php_module_startup()
authorDmitry Stogov <dmitry@php.net>
Tue, 14 Feb 2012 13:31:23 +0000 (13:31 +0000)
committerDmitry Stogov <dmitry@php.net>
Tue, 14 Feb 2012 13:31:23 +0000 (13:31 +0000)
NEWS
sapi/cgi/cgi_main.c

diff --git a/NEWS b/NEWS
index 613d9188662ac16e1198c78699108064ac0254a9..269d9993dc2c964e78b2cf1647f8499501828d59 100644 (file)
--- 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
index d43b19da6603d328baefe13c02a5ff542034003d..1e403870c3302d638784152807c6313692090667 100644 (file)
@@ -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"));