]> granicus.if.org Git - php/commitdiff
Also Fixed #68571 in CGI SAPI, and some cleanup
authorXinchen Hui <laruence@php.net>
Tue, 27 Jan 2015 14:11:23 +0000 (22:11 +0800)
committerXinchen Hui <laruence@php.net>
Tue, 27 Jan 2015 14:11:23 +0000 (22:11 +0800)
NEWS
sapi/cgi/cgi_main.c
sapi/cgi/fastcgi.c
sapi/fpm/fpm/fastcgi.c
sapi/fpm/fpm/fpm_main.c
sapi/tests/test006.phpt

diff --git a/NEWS b/NEWS
index a9ddf575d5fce0aa6c03a3cba5d115c632514666..145660f81584e47a6158b9b41f5474b5a0d7515a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@ PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2015, PHP 5.5.22
 
+
 - Date:
   . Fixed bug #45081 (strtotime incorrectly interprets SGT time zone). (Derick)
   . Fixed bug #55407 (Impossible to prototype DateTime::createFromFormat).
@@ -13,6 +14,10 @@ PHP                                                                        NEWS
 - Fileinfo:
   . Fixed bug #68827 (Double free with disabled ZMM). (Joshua Rogers)
 
+- FPM:
+  . Fixed bug #68571 (core dump when webserver close the socket).
+    (redfoxli069 at gmail dot com, Laruence)
+
 - OpenSSL:
   . Fixed bug #55618 (use case-insensitive cert name matching).
     (Daniel Lowrey)
index de9a47699927d2e6ab2d151de91fbf476f3f0cbe..1f84ab25976c0632a669c86de58a2b3831cde4d5 100644 (file)
@@ -730,13 +730,16 @@ static void sapi_cgi_log_message(char *message TSRMLS_DC)
 
                request = (fcgi_request*) SG(server_context);
                if (request) {
-                       int len = strlen(message);
+                       int ret, len = strlen(message);
                        char *buf = malloc(len+2);
 
                        memcpy(buf, message, len);
                        memcpy(buf + len, "\n", sizeof("\n"));
-                       fcgi_write(request, FCGI_STDERR, buf, len+1);
+                       ret = fcgi_write(request, FCGI_STDERR, buf, len + 1);
                        free(buf);
+                       if (ret < 0) {
+                               php_handle_aborted_connection();
+                       }
                } else {
                        fprintf(stderr, "%s\n", message);
                }
index 6a7e3a2e5425892c76fc7020fb41c124913ba555..5e9e4c89c4c8375bb95416d49dff1dada56440e3 100644 (file)
@@ -1321,6 +1321,7 @@ int fcgi_flush(fcgi_request *req, int close)
 
        if (safe_write(req, req->out_buf, len) != len) {
                req->keep = 0;
+               req->out_pos = req->out_buf;
                return 0;
        }
 
index 79107c3b41f2be48dffe9286dce66b3cadaf1336..8b081b2be127a77523086fd397d7c4a65deb7bce 100644 (file)
@@ -975,7 +975,7 @@ int fcgi_flush(fcgi_request *req, int close)
 
        if (safe_write(req, req->out_buf, len) != len) {
                req->keep = 0;
-               req->out_pos = req->out_buf;
+               req->out_pos = req->out_buf;
                return 0;
        }
 
index 4e7d705c251950088258ec445384f9a06aed741a..d3912de7987814293c35ce5018c07e9c8e0a0977 100644 (file)
@@ -669,15 +669,15 @@ void sapi_cgi_log_fastcgi(int level, char *message, size_t len)
         * - the message is not empty
         */
        if (CGIG(fcgi_logging) && request && message && len > 0) {
+               int ret;
                char *buf = malloc(len + 2);
-               ssize_t ret = 0;
                memcpy(buf, message, len);
                memcpy(buf + len, "\n", sizeof("\n"));
-               ret = fcgi_write(request, FCGI_STDERR, buf, len+1);
+               ret = fcgi_write(request, FCGI_STDERR, buf, len + 1);
                free(buf);
-               if (ret <= 0) {
-                    php_handle_aborted_connection();
-               }
+               if (ret < 0) {
+                       php_handle_aborted_connection();
+               }
        }
 }
 /* }}} */
index 45e37811ef71e43f2c2784211842cd4adf5d8a57..5cb211856b70abff8e4c0bb4b0cfbde7ad0c7d4e 100644 (file)
@@ -43,7 +43,6 @@ Content-Type: application/octet-stream
 phpinfo();
 ?>
 -----------------------------240723202011929--
-
 --FILE--
 <?php 
 error_reporting(0);