Skip to content

Commit 7a247b7

Browse files
committed
ext/soap: Convert bailout for invalid headers argument to TypeError
1 parent 4ca94ee commit 7a247b7

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
@@ -2587,7 +2587,8 @@ PHP_METHOD(SoapClient, __soapCall)
25872587
} else if (Z_TYPE_P(headers) == IS_ARRAY) {
25882588
soap_headers = Z_ARRVAL_P(headers);
25892589
if (!verify_soap_headers_array(soap_headers)) {
2590-
php_error_docref(NULL, E_ERROR, "Invalid SOAP header");
2590+
zend_argument_type_error(4, "must be on array of SoapHeader objects");
2591+
RETURN_THROWS();
25912592
}
25922593
free_soap_headers = false;
25932594
} else if (Z_TYPE_P(headers) == IS_OBJECT && instanceof_function(Z_OBJCE_P(headers), soap_header_class_entry)) {
@@ -2798,7 +2799,8 @@ PHP_METHOD(SoapClient, __setSoapHeaders)
27982799
convert_to_null(Z_CLIENT_DEFAULT_HEADERS_P(this_ptr));
27992800
} else if (Z_TYPE_P(headers) == IS_ARRAY) {
28002801
if (!verify_soap_headers_array(Z_ARRVAL_P(headers))) {
2801-
php_error_docref(NULL, E_ERROR, "Invalid SOAP header");
2802+
zend_argument_type_error(1, "must be on array of SoapHeader objects");
2803+
RETURN_THROWS();
28022804
}
28032805
zval_ptr_dtor(Z_CLIENT_DEFAULT_HEADERS_P(this_ptr));
28042806
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)