Skip to content

Commit ba38a94

Browse files
committed
ext/soap: Convert bailout for invalid headers argument to TypeError
1 parent 986c96d commit ba38a94

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

ext/soap/soap.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2617,7 +2617,8 @@ PHP_METHOD(SoapClient, __soapCall)
26172617
} else if (Z_TYPE_P(headers) == IS_ARRAY) {
26182618
soap_headers = Z_ARRVAL_P(headers);
26192619
if (!verify_soap_headers_array(soap_headers)) {
2620-
php_error_docref(NULL, E_ERROR, "Invalid SOAP header");
2620+
zend_argument_type_error(4, "must be on array of SoapHeader objects");
2621+
RETURN_THROWS();
26212622
}
26222623
free_soap_headers = false;
26232624
} else if (Z_TYPE_P(headers) == IS_OBJECT && instanceof_function(Z_OBJCE_P(headers), soap_header_class_entry)) {
@@ -2828,7 +2829,8 @@ PHP_METHOD(SoapClient, __setSoapHeaders)
28282829
convert_to_null(Z_CLIENT_DEFAULT_HEADERS_P(this_ptr));
28292830
} else if (Z_TYPE_P(headers) == IS_ARRAY) {
28302831
if (!verify_soap_headers_array(Z_ARRVAL_P(headers))) {
2831-
php_error_docref(NULL, E_ERROR, "Invalid SOAP header");
2832+
zend_argument_type_error(1, "must be on array of SoapHeader objects");
2833+
RETURN_THROWS();
28322834
}
28332835
zval_ptr_dtor(Z_CLIENT_DEFAULT_HEADERS_P(this_ptr));
28342836
ZVAL_COPY(Z_CLIENT_DEFAULT_HEADERS_P(this_ptr), headers);

ext/soap/tests/SoapClient/setSoapHeaders-invalid-headers.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ try {
2424
}
2525

2626
?>
27-
--EXPECTF--
28-
Fatal error: SoapClient::__setSoapHeaders(): Invalid SOAP header in %s on line %d
27+
--EXPECT--
28+
TypeError: SoapClient::__setSoapHeaders(): Argument #1 ($headers) must be on array of SoapHeader objects

ext/soap/tests/SoapClient/soapCall-invalid-headers.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ try {
2424
}
2525

2626
?>
27-
--EXPECTF--
28-
Fatal error: SoapClient::__soapCall(): Invalid SOAP header in %s on line %d
27+
--EXPECT--
28+
TypeError: SoapClient::__soapCall(): Argument #4 ($inputHeaders) must be on array of SoapHeader objects

0 commit comments

Comments
 (0)