1
0
mirror of https://github.com/php/php-src.git synced 2026-04-29 11:13:36 +02:00
Commit Graph

4634 Commits

Author SHA1 Message Date
Nikita Popov 90fea67546 Populate hashtable of __sleep() properties
Instead of populating a hashtable of property names and then
directly serializing.

This has the advantage of a) detecting duplicate properties more
precisely and b) gives us the ability to discard values without
rewriting the serialization string after the fact for GH-5027.
2020-01-02 11:14:01 +01:00
Nikita Popov de0ca4734e Deref names returned by __sleep() 2020-01-02 11:14:00 +01:00
Christoph M. Becker 8d2b20db58 [ci skip] Revert "Add test case for bug #78883"
This reverts commit 09e76cbe6d, because
the test fails reliably on AppVeyor.  This needs closer investigation.
2019-12-31 14:27:16 +01:00
Christoph M. Becker 09e76cbe6d Add test case for bug #78883
The actual test has been provided by divinity76.
2019-12-31 13:09:27 +01:00
Nikita Popov f77747b06c Properly propagate url_stat exceptions during include
Make sure we abort operations early, and that we don't emit
additional warnings or errors if an exception has been thrown.
2019-12-30 22:56:42 +01:00
Nikita Popov ed3811e781 Revert "Increase serialize_lock while decoding session"
This reverts commit b8ef7c35ab.

See bug #79031. The semantics of serialize locking aren't quite
correct right now, and the use of the lock in this particular
place makes us hit the issue in a common case. I'm reverting this
commit for PHP 7.4 and will try to fix this properly for PHP 8,
as I believe it will require ABI breakage.
2019-12-30 11:27:13 +01:00
Nikita Popov d5c55f81ec Try to make proc_open_bug69900.phpt more robust 2019-12-20 13:51:31 +01:00
Nikita Popov 10eb0b3110 Fixed bug #79000
Don't report EAGAIN/EWOULDBLOCK as errors for fwrite on
non-blocking socket streams. This matches behavior for fread,
as well as behavior for plain file streams.

Closes GH-5026.
2019-12-20 11:37:43 +01:00
Nikita Popov e4b12fc62a Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Add destructor annotations in ini parser
2019-12-19 10:43:14 +01:00
Nikita Popov 0f078f6e78 Add destructor annotations in ini parser
It would be better to switch this to use %union and %type annotations,
but not going to do that change for 7.3.
2019-12-19 10:43:05 +01:00
Fabien Villepinte 203308f6c3 Add CONFLICTS tag
These tests can be the reason file_get_contents_variation8.phpt fails times to times.
2019-12-18 11:08:24 +01:00
Stanislav Malyshev d9f57e8316 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fixed bug #78910
  Fix #78878: Buffer underflow in bc_shift_addsub
  Fix test
  Fix #78862: link() silently truncates after a null byte on Windows
  Fix #78863: DirectoryIterator class silently truncates after a null byte
  Fix #78943: mail() may release string with refcount==1 twice
2019-12-16 00:39:37 -08:00
Stanislav Malyshev a65b8abf2c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #78910
  Fix #78878: Buffer underflow in bc_shift_addsub
  Fix test
  Fix #78862: link() silently truncates after a null byte on Windows
  Fix #78863: DirectoryIterator class silently truncates after a null byte
2019-12-16 00:38:54 -08:00
Christoph M. Becker 0e6c0654ed Fix #78862: link() silently truncates after a null byte on Windows
Since link() is supposed to accepts paths (i.e. strings without NUL
bytes), we must not accept arbitrary strings.
2019-12-16 00:03:06 -08:00
Christoph M. Becker 3356dd0575 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #78814: strip_tags allows / in tag name => whitelist bypass
2019-12-02 11:39:35 +01:00
Christoph M. Becker 861fa60814 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #78814: strip_tags allows / in tag name => whitelist bypass
2019-12-02 11:38:45 +01:00
Christoph M. Becker 600f1f898f Fix #78814: strip_tags allows / in tag name => whitelist bypass
When normalizing tags to check whether they are contained in the set
of allowable tags, we must not strip slashes, unless they come
immediately after the opening `<`, or immediately before the closing
`>`.
2019-12-02 11:37:25 +01:00
Christoph M. Becker a9e45bc0fb Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #78296: is_file fails to detect file
2019-12-02 11:29:58 +01:00
Christoph M. Becker bb735c9e9e Fix #78296: is_file fails to detect file
If we're constructing extended-length paths (i.e. paths prefixed with
`\\?\`), we have to replace all forward slashes with backward slashes,
because the former are not supported by Windows for extended-length
paths.

The more efficient and likely cleaner alternative solution would be to
cater to this in `php_win32_ioutil_normalize_path_w()` by always
replacing forward slashes, but that might break existing code.  It
might be sensible to change that for `master`, though.
2019-12-02 11:29:10 +01:00
Christoph M. Becker 4ff242a9a7 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #78833: Integer overflow in pack causes out-of-bound access
2019-12-02 11:21:07 +01:00
Christoph M. Becker 3d81c54879 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #78833: Integer overflow in pack causes out-of-bound access
2019-12-02 11:19:15 +01:00
Christoph M. Becker db420cb6a1 Fix #78833: Integer overflow in pack causes out-of-bound access
We check for potential signed integer overflow, and bail out
gracefully, in that case.
2019-12-02 11:18:19 +01:00
Christoph M. Becker 4ac3bda462 Prevent parallel test conflicts
The better solution would be to actually use different directory names,
but adding respective CONFLICTS sections solves the issue for now.
2019-11-27 14:04:10 +01:00
Christoph M. Becker 30aa2e8932 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #78840: imploding $GLOBALS crashes
2019-11-27 09:33:55 +01:00
Christoph M. Becker fee38633d2 Fix #78840: imploding $GLOBALS crashes
We add support for IS_INDIRECT zvals to implode().
2019-11-27 09:32:16 +01:00
Christoph M. Becker 717730ddd1 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #77638: var_export'ing certain class instances segfaults
2019-11-25 15:57:56 +01:00
Christoph M. Becker 23c65a8173 Fix #77638: var_export'ing certain class instances segfaults
If objects return immutable property hash tables (typically,
`zend_empty_array`), we must not try to apply recursion protection on
those.
2019-11-25 15:54:11 +01:00
Fabien Villepinte 92fd96531c Add more CONFLICTS tags
Closes GH-4908.
2019-11-13 20:59:23 +01:00
Fabien Villepinte ce41795a9f Fix conflicts in windows ACL tests
Closes GH-4898.
2019-11-09 13:55:42 +01:00
Nikita Popov aba89f56ff Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Remove outdated comments in test
2019-11-07 14:06:48 +01:00
Nikita Popov 29f4939923 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Remove outdated comments in test
2019-11-07 14:06:33 +01:00
Nikita Popov ee243bc471 Remove outdated comments in test 2019-11-07 14:06:23 +01:00
Nikita Popov aed4f6e849 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fixed bug #78759
2019-11-07 11:17:14 +01:00
Nikita Popov 8d2a9d8859 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #78759
2019-11-07 11:16:24 +01:00
Nikita Popov 5fa6dcd972 Fixed bug #78759
Handle INDIRECT values in array.
2019-11-07 11:15:29 +01:00
Nikita Popov f494a36618 Remove bogus skipifs in get_browser tests
We provide this file, it should be readable.

These checks no longer work, since --INI-- values are no longer
passed to --SKIPIF--.
2019-11-06 17:48:52 +01:00
Fabien Villepinte a0d58abb79 Fix conflicts between tests with obscure filenames
For non-windows tests
2019-11-01 12:33:36 +01:00
Fabien Villepinte 5367f36da7 Fix conflicts between tests with obscure filenames 2019-11-01 12:24:38 +01:00
Nikita Popov 43dc7da8e3 Try one more FD in ext/standard/tests/file/php_fd_wrapper_04.phpt
For some reason FD 120 seems to exist on macos quite often, while
FD 12 did not... Let's try an even larger number, otherwise we
should just drop this test.
2019-10-27 09:35:57 +01:00
Nikita Popov edf7346810 Skip large ftruncate test if large files not supported 2019-10-24 14:46:49 +02:00
Nikita Popov 6aa6d70e9d Don't test "blocks" in lstat_stat_variation7.phpt
This stat property seems to be somewhat unreliable depending on the
filesystem. On Travis ARM64 CI a much larger payload is required
to get this value to increase.
2019-10-24 14:46:41 +02:00
Nikita Popov 8fd30aae16 Increase FD used in php://fd test 2019-10-24 14:46:34 +02:00
Fabien Villepinte 8b160f530c Change port to avoid collision with others tests
The 64321 port is already used with the ext/openssl tests.
2019-10-16 20:50:54 +02:00
Christoph M. Becker 8e06504e94 Prevent parallel testing conflicts
disk_free_space_basic.phpt already uses this directory, so we rename
it.
2019-10-15 16:29:46 +02:00
Remi Collet 5a024d2c5b Fix #78662: stream_write bad error detection 2019-10-11 13:36:58 +02:00
Fabien Villepinte 8b5c351154 Avoid file clash in root_check skipifs
Extract root check into skipif_root.inc to share this commonly
repeated logic.

Closes GH-4779.
2019-10-08 18:20:13 +02:00
Nikita Popov 196f9697ef Merge branch 'PHP-7.3' into PHP-7.4 2019-10-08 12:35:35 +02:00
Nikita Popov 2fdd142f99 Check for exception after applying stream filters
This makes the stream opening actually fail, and avoids assertion
failures when we tokenize with EG(exception) set.

Also avoid throwing an additional warning after an exception has
already been thrown.
2019-10-08 12:32:57 +02:00
Nikita Popov 3c38d20882 Merge branch 'PHP-7.3' into PHP-7.4 2019-10-07 17:52:41 +02:00
Nikita Popov 8a03fd6a5e Merge branch 'PHP-7.2' into PHP-7.3 2019-10-07 17:52:35 +02:00