diff options
| author | Dmitry Stogov <dmitry@php.net> | 2007-11-01 12:26:38 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2007-11-01 12:26:38 +0000 |
| commit | 6fe79496feaeb6544bce408435a75d84d8aca33c (patch) | |
| tree | f64c5b4733a41d4c1ac867cd6ad330bb9d9e25c0 /ext | |
| parent | 52e3ca0b328fa5c0e51c326245bd9feb7bd0a63b (diff) | |
| download | php-git-6fe79496feaeb6544bce408435a75d84d8aca33c.tar.gz | |
Fixed bug #42773 (WSDL error causes HTTP 500 Response)
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/soap/soap.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 4537eb3efe..73930c279f 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -2423,13 +2423,14 @@ static void soap_server_fault(char* code, char* string, char *actor, zval* detai static void soap_error_handler(int error_num, const char *error_filename, const uint error_lineno, const char *format, va_list args) { - zend_bool _old_in_compilation, _old_in_execution; + zend_bool _old_in_compilation, _old_in_execution, _old_headers_sent; zend_execute_data *_old_current_execute_data; TSRMLS_FETCH(); _old_in_compilation = CG(in_compilation); _old_in_execution = EG(in_execution); _old_current_execute_data = EG(current_execute_data); + _old_headers_sent = SG(headers_sent); if (!SOAP_GLOBAL(use_soap_error_handler)) { call_old_error_handler(error_num, error_filename, error_lineno, format, args); @@ -2483,12 +2484,14 @@ static void soap_error_handler(int error_num, const char *error_filename, const old_objects = EG(objects_store).object_buckets; EG(objects_store).object_buckets = NULL; PG(display_errors) = 0; + SG(headers_sent) = 1; zend_try { call_old_error_handler(error_num, error_filename, error_lineno, format, args); } zend_catch { CG(in_compilation) = _old_in_compilation; EG(in_execution) = _old_in_execution; EG(current_execute_data) = _old_current_execute_data; + SG(headers_sent) = _old_headers_sent; } zend_end_try(); EG(objects_store).object_buckets = old_objects; PG(display_errors) = old; @@ -2554,12 +2557,14 @@ static void soap_error_handler(int error_num, const char *error_filename, const } PG(display_errors) = 0; + SG(headers_sent) = 1; zend_try { call_old_error_handler(error_num, error_filename, error_lineno, format, args); } zend_catch { CG(in_compilation) = _old_in_compilation; EG(in_execution) = _old_in_execution; EG(current_execute_data) = _old_current_execute_data; + SG(headers_sent) = _old_headers_sent; } zend_end_try(); PG(display_errors) = old; |
