summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-01-27 22:11:23 +0800
committerXinchen Hui <laruence@php.net>2015-01-27 22:11:23 +0800
commit8c2d91761aaa3b7b25c70df4d2320f85e9322e79 (patch)
tree656be54148e703ee6b5a4d3325dfab54efcc0103
parent6c87372199418029a4b0ecfc260fbe83673ca67f (diff)
downloadphp-git-8c2d91761aaa3b7b25c70df4d2320f85e9322e79.tar.gz
Also Fixed #68571 in CGI SAPI, and some cleanup
-rw-r--r--NEWS5
-rw-r--r--sapi/cgi/cgi_main.c7
-rw-r--r--sapi/cgi/fastcgi.c1
-rw-r--r--sapi/fpm/fpm/fastcgi.c2
-rw-r--r--sapi/fpm/fpm/fpm_main.c10
-rw-r--r--sapi/tests/test006.phpt1
6 files changed, 17 insertions, 9 deletions
diff --git a/NEWS b/NEWS
index a9ddf575d5..145660f815 100644
--- 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)
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);