diff options
Diffstat (limited to 'ext/soap/php_packet_soap.c')
-rw-r--r-- | ext/soap/php_packet_soap.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/soap/php_packet_soap.c b/ext/soap/php_packet_soap.c index 4b7044ba30..e9277668c9 100644 --- a/ext/soap/php_packet_soap.c +++ b/ext/soap/php_packet_soap.c @@ -7,12 +7,19 @@ int parse_packet_soap(zval *this_ptr, char *buffer, int buffer_size, sdlFunction xmlDocPtr response; xmlNodePtr trav, env, head, body, resp, cur, fault; int param_count = 0; + int old_error_reporting; ZVAL_NULL(return_value); + old_error_reporting = EG(error_reporting); + EG(error_reporting) &= ~(E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE); + /* Parse XML packet */ response = xmlParseMemory(buffer, buffer_size); xmlCleanupParser(); + + EG(error_reporting) = old_error_reporting; + if (!response) { add_soap_fault(this_ptr, "SOAP-ENV:Client", "looks like we got no XML document", NULL, NULL TSRMLS_CC); return FALSE; |