com php-src: Fixed bug #70979 crash with bad soap request: ext/soap/soap.c
| From: | Anatol Belski | Date: | Thu, 14 Jan 2016 16:42:28 +0000 |
| Subject: | com php-src: Fixed bug #70979 crash with bad soap request: ext/soap/soap.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-90642@lists.php.net to get a copy of this message | ||
Commit: 4308c868f94df1f2b99e80038ba5ea1076d919a7
Author: Anatol Belski <ab@php.net> Thu, 14 Jan 2016 17:42:28 +0100
Parents: 1f513805dccdd1d10a8e462c16422bdfc2c795ba
Branches: PHP-5.6 PHP-7.0 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=4308c868f94df1f2b99e80038ba5ea1076d919a7
Log:
Fixed bug #70979 crash with bad soap request
The error handler is overloaded with the SOAP one. However the SOAP
handler eventually wants to access some of its globals. This won't
work as long as the SOAP globals aren't initialized. The use case
is when an error is thrown before RINIT went through. As the call
order is arbitrary, the safest is to wait when all the modules
called their RINIT.
Bugs:
https://bugs.php.net/70979
Changed paths:
M ext/soap/soap.c
Diff:
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index 7c84bc9..f0e26bf 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -2135,7 +2135,7 @@ static void soap_error_handler(int error_num, const char *error_filename,
const
_old_http_response_code = SG(sapi_headers).http_response_code;
_old_http_status_line = SG(sapi_headers).http_status_line;
- if (!SOAP_GLOBAL(use_soap_error_handler) || !EG(objects_store).object_buckets) {
+ if (!PG(modules_activated) || !SOAP_GLOBAL(use_soap_error_handler) ||
!EG(objects_store).object_buckets) {
call_old_error_handler(error_num, error_filename, error_lineno, format, args);
return;
}