summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/soap/soap.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index 9c376c173c..9a9c74e5ed 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -1394,6 +1394,7 @@ static void do_soap_call(zval* thisObj,
char *buffer;
int len;
int ret = FALSE;
+ int bailout = FALSE;
int soap_version, old_soap_version;
if (zend_hash_find(Z_OBJPROP_P(thisObj), "trace", sizeof("trace"), (void **) &trace) == SUCCESS
@@ -1478,7 +1479,11 @@ zend_try {
}
} zend_catch {
ret = FALSE;
+ bailout = TRUE;
} zend_end_try();
+ if (bailout) {
+ zend_bailout();
+ }
if (!ret) {
zval** fault;
if (zend_hash_find(Z_OBJPROP_P(thisObj), "__soap_fault", sizeof("__soap_fault"), (void **) &fault) == SUCCESS) {