1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 17:38:14 +02:00
Commit Graph

59871 Commits

Author SHA1 Message Date
Nikita Popov 6b05d958aa Make internal SoapServer/SoapClient state private
This was previously implicitly public due to the use of dynamic
properties. Make this internal state private.

If someone complains, we can consider relaxing this to protected
or public on a case-by-case basis.
2021-08-20 12:54:39 +02:00
Nikita Popov e6c6abf6b4 Declare remaining SoapClient properties 2021-08-20 12:50:19 +02:00
Nikita Popov b3b1658492 Remove dead code
This was checking for the headerfault property, but not actually
doing anything with it.
2021-08-20 12:28:58 +02:00
Nikita Popov aa4898ef2e Use separate property to request digit auth
Currently, _digest is used both to request that digest auth be
used (_digest == null) and to later store the _digest parameters.

This relies on the ability to distinguish between _digest being
null and it being not set, which is not present with declared
properties. (Well, technically it is, we could just leave it
uninitialized, but that would be non-idiomatic.)

Resolve this by splitting into separate _use_digest and _digest
properties.
2021-08-20 10:41:36 +02:00
Nikita Popov 32d663e198 Declare SoapFault properties 2021-08-20 10:08:22 +02:00
Nikita Popov 44befbdc01 Don't convert Error exception to SoapFault
Error exceptions should generally not be converted into domain-
specific exception types. They indicate programming errors that
should not be handled locally.
2021-08-20 10:06:11 +02:00
Nikita Popov 018cb891cf Declare some SoapClient properties
This is only a subset of all properties for now (those without
underscore).
2021-08-19 16:15:41 +02:00
Nikita Popov e861cb5c31 Simplify some strtolower operations in ext/soap 2021-08-19 16:10:30 +02:00
Nikita Popov e6d4b3077d Simplify constructor invocation in ext/soap
Use ce->constructor and zend_call_known_instance_method. There
is no need to look up a method with the same name as the class
anymore.
2021-08-19 16:04:43 +02:00
Nikita Popov 7d4f2f5392 Declare SoapHeader properties 2021-08-19 14:27:09 +02:00
Nikita Popov bdf8b9ed2d Declare SoapServer::$service property 2021-08-19 14:10:21 +02:00
Nikita Popov c58c926034 Declare SoapVar properties 2021-08-19 12:35:37 +02:00
Nikita Popov 030bb36ed7 Declare SoapParam properties 2021-08-19 11:48:56 +02:00
Nikita Popov 29c6eb6cf5 Declare Directory properties
Some error handling test changes, as changes to the $handle
property are now detected earlier.
2021-08-19 10:39:23 +02:00
hassan 7e84b1ee00 Fix path printing in ext_skel (#7387) 2021-08-19 09:43:32 +02:00
Bob Weinand 1440d15e00 Add missing zend_test requirement to ffi test for bug80847 2021-08-18 17:16:54 +02:00
Christoph M. Becker eaa3532b04 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix #78819: Heap Overflow in msg_send
2021-08-18 16:39:36 +02:00
Christoph M. Becker 465b3ab2f9 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #78819: Heap Overflow in msg_send
2021-08-18 16:37:58 +02:00
Christoph M. Becker 9494b1cdc4 Fix #78819: Heap Overflow in msg_send
We need to use the proper type.

Closes GH-7386.
2021-08-18 16:35:16 +02:00
Nikita Popov ba8e5d336b Merge branch 'PHP-8.0'
* PHP-8.0:
  Test file_cache prime shm + use file combination
  Fix repeated file cache unserialization of zval string
2021-08-18 12:39:47 +02:00
Nikita Popov de7ba3e737 Fix repeated file cache unserialization of zval string
The IS_UNSERIALIZED check here does not work if the string is
interned (serialized with file_cache_only=0) but unserialization
happens with file_cache_only=1. In this case the unserializde
string will be in the str area after mem, which is not included
in the script size, and which is also not accessible at this
point without threading through more information. Work around
the problem by checking for the serialized representation instead.
2021-08-18 12:38:27 +02:00
Nikita Popov e86a0a905d Assert that file cache does not contain references 2021-08-17 17:13:19 +02:00
Nikita Popov ddc21b0902 Fix phar test
As the REPORT_ERRORS flag is now respected, this no longer
throws a warning (in addition to the exception).
2021-08-17 14:57:17 +02:00
Nikita Popov ef5558a8cd Use zend_string for putenv key (#7379)
A zend_string will be created anyway for the hash key,
so we may as well create one in the first place.
2021-08-17 12:29:04 +02:00
Nikita Popov 2a4dba7b14 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix maybe-uninitialized warning
2021-08-17 12:27:39 +02:00
Nikita Popov b66168e86b Fix maybe-uninitialized warning
Some GCC versions don't like zend_try in loop. Avoid the issue
by pulling it out of the loop, we don't particularly care about
skipping further warnings if a bailout occurs, just that it
does not interrupt shutdown.

Closes GH-7380.
2021-08-17 12:27:32 +02:00
Christoph M. Becker 02b725a269 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix #71542: disk_total_space does not work with relative paths
2021-08-17 11:32:24 +02:00
Christoph M. Becker e45a063f4b Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #71542: disk_total_space does not work with relative paths
2021-08-17 11:31:14 +02:00
Christoph M. Becker f924e97269 Fix #71542: disk_total_space does not work with relative paths
For ZTS builds, we need to expand the path given to `disk_free_space()`
and `disk_total_space()` to properly support the VCWD.

Closes GH-7377.
2021-08-17 11:29:33 +02:00
Nikita Popov b56699b8f0 Use system allocator for putenv value
The putenv value is stored in environ. If for some reason we
fail to restore it on shutdown, make sure that we fail gracefully
by using a system allocated value, rather than a ZMM allocated one.

This is an additional mitigation for bug #81316 style issues if
all else fails.
2021-08-17 11:03:14 +02:00
Nikita Popov f603934a5e Merge branch 'PHP-8.0'
* PHP-8.0:
  Prevent bailout during imap shutdown error reporting
2021-08-17 10:35:16 +02:00
Nikita Popov 85eafc31e8 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Prevent bailout during imap shutdown error reporting
2021-08-17 10:35:07 +02:00
Nikita Popov bcc2f0705d Prevent bailout during imap shutdown error reporting
This is a non-intrusive, minimal fix for bug #81316, which prevents
a bailout during imap RSHUTDOWN and prevents the basic shutdown
handler from being skipped.

I wasn't able to make the issue reproduce in a small test.
2021-08-17 10:33:39 +02:00
Nikita Popov 97b6a364b3 Fix __COMPILER_HALT_OFFSET__ preservation during preloading
The shutdown refactoring has moved the destruction of constants
earlier, so also move the halt compiler offset backup earlier.

This fixes phar tests under --preload.
2021-08-17 10:03:22 +02:00
Nikita Popov fc6f3d155b Add test for getClass() error conditions
Inspired by GH-7372, to show that these are not dead code.
2021-08-17 09:52:57 +02:00
Christoph M. Becker 6b1c47a50e Remove full stop from error message
Error messages shouldn't have a full stop.  Period.

Closes GH-7369.
2021-08-16 23:13:41 +02:00
Nikita Popov cecea72a10 Reuse parts of normal executor shutdown for preloading
preloading currently reimplements parts of shutdown_executor(),
so it's easy for that code to go out of sync.

Extract this into an zend_shutdown_executor_values() API function
and use it as part of the preloading pre-shutdown.
2021-08-16 16:20:03 +02:00
Nikita Popov 4bb66ddc76 Set EG(active)=0 during preloading shutdown
Just like during normal shutdown, we should set EG(active)=0
during the partial preloading shutdown, to make sure that no
user code can run.

We need to slightly tweak inheritance class loading to still
pick the right code path.
2021-08-16 15:53:12 +02:00
Nikita Popov 99ddc806dc Discard constants before preload_load()
We don't preload constants, so we should also not cache
constant evaluations based on them, as a different value may be
defined at runtime.
2021-08-16 15:47:18 +02:00
Nikita Popov af50e687a8 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fixed bug #81353
2021-08-16 15:05:32 +02:00
Nikita Popov 47ccdecf00 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fixed bug #81353
2021-08-16 15:04:57 +02:00
Nikita Popov d1e956ff31 Fixed bug #81353
A user-defined error handler should not be invoked for preload
warnings. We are in a partially shut-down state at that point.
2021-08-16 15:04:17 +02:00
Nikita Popov 7b34db0659 Switch default PKCS7/CMS cipher to AES-128-CBC
Switch default cipher for openssl_pkcs7_encrypt() and
openssl_cms_encrypt() from RC2-40 to AES-128-CBC.

The RC2-40 cipher is considered insecure and is not loaded by
default in OpenSSL 3, which means that these functions will
always fail with default arguments.

As the used algorithm is embedded in the result (which makes this
different from the openssl_encrypt() case) changing the default
algorithm should be safe.

Closes GH-7357.
2021-08-16 12:31:48 +02:00
Nikita Popov 6e20f0f3a2 Returned interned string from fgetc()
Make use of single-character interned strings.
2021-08-16 11:15:23 +02:00
Kamil Tekiela d902b3a844 Replace macro with inline function (#7365) 2021-08-13 20:03:26 +01:00
Christoph M. Becker 6db4b972d0 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix return value of xml_parse(_into_struct) for recursive parsing
2021-08-13 19:01:19 +02:00
Christoph M. Becker 15e5cf856a Fix return value of xml_parse(_into_struct) for recursive parsing
As of PHP 8.0.0, these functions are supposed to return int, so we
cannot return `false`.  Since calling the parser recursively is a
programmer error, we throw an `Error` in this case.

Cf. <https://github.com/php/php-src/pull/7363>.
2021-08-13 19:00:13 +02:00
Christoph M. Becker 0f1bf4bbd7 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix #81351: xml_parse may fail, but has no error code
2021-08-13 17:40:32 +02:00
Christoph M. Becker 2c6177a4a8 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #81351: xml_parse may fail, but has no error code
2021-08-13 17:37:36 +02:00
Christoph M. Becker 80a377e69b Fix #81351: xml_parse may fail, but has no error code
The fix for bug #73151[1] cured the symptoms, but not the root cause,
namely xmlParse() must not be called recursively.  Since that bugfix
also messed up the error handling, we basically revert it (but also
simplify the return), and then prevent calling the parser recursively.

[1] <https://github.com/php/php-src/pull/2166/commits/f2a8a8c068995a5d780882c556cedd53bce3827d>

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>

Closes GH-7363.
2021-08-13 17:33:58 +02:00