diff options
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | sapi/cgi/cgi_main.c | 7 | ||||
-rw-r--r-- | sapi/cgi/fastcgi.c | 1 | ||||
-rw-r--r-- | sapi/fpm/fpm/fastcgi.c | 2 | ||||
-rw-r--r-- | sapi/fpm/fpm/fpm_main.c | 10 | ||||
-rw-r--r-- | sapi/tests/test006.phpt | 1 |
6 files changed, 17 insertions, 9 deletions
@@ -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) diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c index de9a476999..1f84ab2597 100644 --- a/sapi/cgi/cgi_main.c +++ b/sapi/cgi/cgi_main.c @@ -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); } diff --git a/sapi/cgi/fastcgi.c b/sapi/cgi/fastcgi.c index 6a7e3a2e54..5e9e4c89c4 100644 --- a/sapi/cgi/fastcgi.c +++ b/sapi/cgi/fastcgi.c @@ -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; } diff --git a/sapi/fpm/fpm/fastcgi.c b/sapi/fpm/fpm/fastcgi.c index 79107c3b41..8b081b2be1 100644 --- a/sapi/fpm/fpm/fastcgi.c +++ b/sapi/fpm/fpm/fastcgi.c @@ -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; } diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c index 4e7d705c25..d3912de798 100644 --- a/sapi/fpm/fpm/fpm_main.c +++ b/sapi/fpm/fpm/fpm_main.c @@ -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(); + } } } /* }}} */ diff --git a/sapi/tests/test006.phpt b/sapi/tests/test006.phpt index 45e37811ef..5cb211856b 100644 --- a/sapi/tests/test006.phpt +++ b/sapi/tests/test006.phpt @@ -43,7 +43,6 @@ Content-Type: application/octet-stream phpinfo(); ?> -----------------------------240723202011929-- - --FILE-- <?php error_reporting(0); |