1
0
mirror of https://github.com/php/php-src.git synced 2026-04-28 18:53:33 +02:00
Commit Graph

557 Commits

Author SHA1 Message Date
robertnisipeanu 8735ae9d13 Fix GH-8578: Error on wrong parameter on SoapHeader constructor
Closes GH-8579.
2022-05-19 11:03:49 +02:00
Nikita Popov ce7935e82a Don't pass null action to __doRequest
The parameter is not nullable, so it will be interpreted as
an empty string anyway.

The entire code here is pretty confusing though, and probably
deserves a second loop. The HTTP code only send SOAPAction/action
if soapaction is non-NULL -- but it always is, because it is
accepted through a non-nullable string parameter.

Regarding the SOAPAction header, it appears that always sending
it is actually a requirement of the standard:
> An HTTP client MUST use this header field when issuing a SOAP
> HTTP Request.
Although it does make a distinction between absence of value and
an empty string:
> The header field value of empty string ("") means that the intent
> of the SOAP message is provided by the HTTP Request-URI. No value
> means that there is no indication of the intent of the message.
The empty string interpretation appears to be the desired one.

However, for the action MIME tag the SOAP 1.2 Part 2 specification
says that
> The media type specifies an optional action parameter, which can
> be used to optimize dispatch or routing, among other things.
but also
> The SOAP Action feature defines a single property, which is
> described in Table 14. The value of this property MUST be an
> absolute URI[RFC 3986] and MUST NOT be empty.
which would indicate that we should not be sending an empty
action here.

As I'm not familiar with SOAP and this is long-standing behavior,
I'm just leaving this alone for now...
2021-02-10 12:00:20 +01:00
Nikita Popov 40ba9f6a1a Clarify that location is required in do_request
As far as I can tell, the location is always non-null here,
and the code wouldn't be able to meaningfully work without a
location.
2021-02-10 11:18:20 +01:00
Nikita Popov 788abb8cc8 Accept null $location in SoapClient::__setLocation()
Currently an empty string is used to unset the location. Once
again, it makes more sense to use a null value for this purpose
(though the special behavior of empty strings is retained).

The code comment above the function also explicitly indicates
that null should be accepted, and the function does return null
rather than an empty string for the old location value (if it
is missing).
2021-02-10 10:50:42 +01:00
Nikita Popov 32d128d219 Make SoapVar arguments nullable
$typeName, $typeNamespace, $nodeName and $nodeNamespace all
special-case the empty string and don't set the property entirely
in that case. It makes more sense to use null to indicate absence
here (though of course the empty string behavior is retained).
2021-02-10 10:36:32 +01:00
Nikita Popov 9e32e1322e Accept bool in SoapClient::__doRequest
$one_way is a boolean argument.
2020-10-08 12:36:49 +02:00
Dmitry Stogov b94fd3a3b6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed incorrect logical condition
2020-09-30 08:29:37 +03:00
Dmitry Stogov 6f0b232648 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fixed incorrect logical condition
2020-09-30 08:29:21 +03:00
George Peter Banyard 3f5c47af3b Fixed incorrect logical condition 2020-09-30 08:29:00 +03:00
Máté Kocsis e950ca13ea Consolidate the usage of "either" and "one of" in error messages
Closes GH-6173
2020-09-20 19:41:47 +02:00
Máté Kocsis c98d47696f Consolidate new union type ZPP macro names
They will now follow the canonical order of types. Older macros are
left intact due to maintaining BC.

Closes GH-6112
2020-09-11 11:00:18 +02:00
twosee bd1d11d352 Simplify error type filter
Closes GH-6049.
2020-09-10 17:36:04 +08:00
Máté Kocsis 47d9446c48 Promote warnings to exceptions in ext/soap and ext/xmlwriter
Closes GH-5998
2020-09-01 14:22:19 +02:00
Christoph M. Becker c8e6f05e70 Merge branch 'PHP-7.4' into master
* PHP-7.4:
  Fix HTTP response status code
2020-08-18 08:37:36 +02:00
Christoph M. Becker 3e8172d27b Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix HTTP response status code
2020-08-18 08:35:56 +02:00
Christoph M. Becker 1ae80f8c92 Fix HTTP response status code 2020-08-18 08:33:45 +02:00
Máté Kocsis 2803c8fb8d Add all the missing parameter types to stubs
Closes GH-5955
2020-08-13 14:47:18 +02:00
Nikita Popov 8b77c58130 Accept zend_object* in zend_update_property 2020-08-07 16:40:27 +02:00
Nikita Popov 7991fc2753 Accept zend_object in zend_read_property 2020-08-07 16:40:27 +02:00
Nikita Popov 86882060ab Use zend_call_method in SoapFault::__toString() 2020-07-23 16:45:53 +02:00
Nikita Popov ac56ca0dcc Separate __call and __soapCall implementations
This is overly pedantic, but allows us to enable more arginfo
consistency checks.
2020-07-21 12:59:28 +02:00
Nikita Popov ae81549048 Move SOAP_SERVER_BEGIN_CODE() after zpp
This is still very dubious, because there are lots of other "returns"
between the BEGIN and END -- won't that end up not restoring the
original state?
2020-07-21 12:05:42 +02:00
Nikita Popov 302933daea Remove no_separation flag 2020-07-07 09:30:24 +02:00
Max Semenik 2b5de6f839 Remove proto comments from C files
Closes GH-5758
2020-07-06 21:13:34 +02:00
Nikita Popov 75a04eac97 Make exit() unwind properly
exit() is now internally implemented by throwing an exception,
performing a normal stack unwind and a clean shutdown. This ensures
that no persistent resource leaks occur.

The exception is internal, cannot be caught and does not result in
the execution of finally blocks. This may be relaxed in the future.

Closes GH-5768.
2020-06-29 15:50:12 +02:00
Nikita Popov 15846ff115 Add ZVAL_OBJ_COPY macro
For the common ZVAL_OBJ + GC_ADDREF pattern.
This mirrors the existing ZVAL_STR_COPY API.
2020-06-17 16:36:56 +02:00
Nikita Popov 975acfe71e Pass zend_string message to zend_error_cb
This makes the zend_error_cb API simpler, and avoid formatting
the same message in multiple places.

It should be noted that the passed zend_string is always
non-persistent, so if you want to store it persistently somewhere,
you may still need to duplicate it.

The last_error_message is cleared a bit more aggressive, to make
sure it doesn't hang around across allocator life-cycles.

Closes GH-5639.
2020-06-05 09:54:02 +02:00
Christoph M. Becker 864fb0ec23 Implement #47074: phpinfo() reports "On" as 1 for the some extensions
What is modified as boolean, should also be displayed as boolean.
2020-06-04 11:25:45 +02:00
George Peter Banyard e5a7ab33f6 Fix [-Wundef] warning in SOAP extension 2020-05-20 16:29:51 +02:00
Nikita Popov 41c7d28c11 Add macro to get ini target address 2020-04-27 10:30:00 +02:00
Máté Kocsis 4815be44db Generate function entries from stubs
Converts ext/pcntl, ext/simplexml, ext/snmp, ext/soap, ext/sqlite3.
Closes GH-5421
2020-04-20 10:38:41 +02:00
Nikita Popov 58b17906f5 Apply tidy formatting
Mostly reindent PHP scripts to spaces.
2020-02-03 13:41:31 +01:00
Máté Kocsis aadd3aaed9 Use RETURN_THROWS() in various places 2020-01-03 21:10:24 +01:00
Máté Kocsis 345703724c Use RETURN_THROWS() during ZPP in most of the extensions
Except for some bigger ones: reflection, sodium, spl
2019-12-31 11:46:11 +01:00
Christoph M. Becker 4008704f62 zend_parse_parameters_throw() is obsolete
Since `zend_parse_parameters()` throws now, there is no reason to
explicitly call `zend_parse_parameters_throw()` anymore, and since both
have actually the same implementation, we redefine the latter as macro.
2019-11-01 16:47:15 +01:00
Gabriel Caruso 5d6e923d46 Remove mention of PHP major version in Copyright headers
Closes GH-4732.
2019-09-25 14:51:43 +02:00
Craig Duncan 8326ef5519 Convert soap functions arginfo to php stubs
We alos make the last parameter of `SoapClient::__setCookie()` and
`SoapFault::__construct()` properly nullable.
2019-09-20 11:21:13 +02:00
Nikita Popov ec9297592e Check zpp before other errors in SoapServer::addSoapHeader() 2019-08-30 17:03:25 +02:00
Dmitry Stogov f7f7fec7ef Merge branch 'PHP-7.4'
* PHP-7.4:
  Reduce overhead
2019-06-28 12:03:27 +03:00
Dmitry Stogov 143f4e3b5c Reduce overhead 2019-06-28 12:03:01 +03:00
Nikita Popov 5918171f95 Merge branch 'PHP-7.4' 2019-06-27 14:21:49 +02:00
Nikita Popov 78375aa52f Fix persistent XML memory leaks in SOAP
SOAP uses a horrible bailout based error handling approach -- avoid
leaking persistent XML memory by catching bailouts in a number of
places.
2019-06-27 14:20:10 +02:00
Nikita Popov ac749b126f Merge branch 'PHP-7.4' 2019-06-26 11:43:30 +02:00
Nikita Popov 788a68900d Fix xml doc leak in soap 2019-06-26 11:43:11 +02:00
Nikita Popov 6aaab9adf7 Merge branch 'PHP-7.4' 2019-06-20 16:24:31 +02:00
Nikita Popov 27d3373496 SOAP: Avoid indexing into null pointer 2019-06-20 16:22:34 +02:00
twosee 63171d88f2 Add do...while(0) for RETURN_* and ZVAL_* APIs
Closes GH-4255.
2019-06-12 16:17:16 +02:00
Dmitry Stogov b2cdde0826 Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
2019-05-28 20:19:15 +03:00
Dmitry Stogov 83804519df Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros 2019-05-28 20:10:02 +03:00
Nikita Popov f2fd51cb80 Merge branch 'PHP-7.4' 2019-04-12 17:05:07 +02:00