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

132950 Commits

Author SHA1 Message Date
Derick Rethans f8b42da3a4 Merge branch 'PHP-8.2' 2023-08-09 15:39:31 +01:00
Derick Rethans 7f6e98cec7 Merge branch 'PHP-8.1' into PHP-8.2 2023-08-09 15:39:25 +01:00
Derick Rethans 4833b84854 Fix GH-11416: Crash with DatePeriod when uninitialised objects are passed in 2023-08-09 15:39:13 +01:00
Ilija Tovilo fc9266a5fc Move ASAN built to GitHub actions
Cirrus will no longer offer unlimited free builds starting next month. We don't
have an alternative for FreeBSD and ARM, so move what we can for now.

Closes GH-11898
2023-08-09 14:06:36 +02:00
Ilija Tovilo db4dba6702 Move opnum_start for goto for clarification (#11911)
opnum_start denotes the start of the ZEND_FREE block of skipped consuming
opcodes. Storing the number before zend_compile_expr(..., label_ast) makes it
seem like it denotes the start of the label block. However, label_ast must only
be a zval string AST, and as such never results in an actual opcode.
2023-08-09 11:38:54 +02:00
Niels Dossche cb927e0fc0 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix segfault when DOMParentNode::prepend() is called when the child disappears
2023-08-08 20:09:08 +02:00
Niels Dossche 8f1cbc8dea Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix segfault when DOMParentNode::prepend() is called when the child disappears
2023-08-08 20:07:11 +02:00
Niels Dossche d19e4da125 Fix segfault when DOMParentNode::prepend() is called when the child disappears
Closes GH-11906.
2023-08-08 20:06:39 +02:00
Máté Kocsis 038b2ae254 Make the $enable parameter of odbc_autocommit() nullable (#11909)
Co-authored-by: George Peter Banyard <girgias@php.net>
2023-08-08 15:31:58 +02:00
George Peter Banyard ad18fbc836 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix skipif condition on new test
2023-08-08 12:43:16 +01:00
George Peter Banyard 52bd07c186 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix skipif condition on new test
2023-08-08 12:42:53 +01:00
George Peter Banyard 4cbc66d5e6 Fix skipif condition on new test
I'm an idiot, messed up the condition when tweaking the test manually before committing.
2023-08-08 12:42:16 +01:00
George Peter Banyard c9c846d63e Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix off-by-one bug when truncating tempnam prefix
2023-08-08 09:52:18 +01:00
George Peter Banyard 1ff59b9ad9 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix off-by-one bug when truncating tempnam prefix
2023-08-08 09:51:02 +01:00
Alexandre Daubois 417f3fdb91 Improve ext/pdo_sqlite tests cleanup (#11900) 2023-08-08 09:49:02 +01:00
Athos Ribeiro cbfd73765a Fix off-by-one bug when truncating tempnam prefix
The tempnam documentation currently states that "Only the first 63
characters of the prefix are used, the rest are ignored". However when
the prefix is 64 characters-long, the current implementation fails to
strip the last character, diverging from the documented behavior. This
patch fixes the implementation so it matches the documented behavior for
that specific case where the prefix is 64 characters long.

Closes GH-11870

Signed-off-by: George Peter Banyard <girgias@php.net>
2023-08-08 09:46:27 +01:00
Máté Kocsis b275e13af7 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix return type of odbc_data_source()
2023-08-08 08:55:36 +02:00
Máté Kocsis 43e62aa21f Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix return type of odbc_data_source()
2023-08-08 08:54:41 +02:00
Máté Kocsis 77252afaf0 Fix return type of odbc_data_source() 2023-08-08 08:52:41 +02:00
Peter Kokot ba35ff0893 Remove unused HAVE_GCC_GLOBAL_REGS shell variable (#11877) 2023-08-08 00:51:56 +02:00
Niels Dossche 505fab1b84 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix viable next sibling search for replaceWith
2023-08-07 20:23:50 +02:00
Niels Dossche 4c5bf0c23b Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix viable next sibling search for replaceWith
2023-08-07 20:23:39 +02:00
Niels Dossche df6e8bd4fd Fix viable next sibling search for replaceWith
Closes GH-11888.
2023-08-07 20:23:06 +02:00
Niels Dossche 5d5e6b0675 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix viable next sibling search for replaceWith
2023-08-07 20:22:36 +02:00
Niels Dossche 87148f6de2 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix viable next sibling search for replaceWith
2023-08-07 20:21:05 +02:00
Niels Dossche 815b5ad501 Fix viable next sibling search for replaceWith
Closes GH-11888.
2023-08-07 20:19:31 +02:00
David CARLIER 3e315df6f8 Merge branch 'PHP-8.2' 2023-08-07 19:02:55 +01:00
David CARLIER e9e5b4c1c8 Merge branch 'PHP-8.1' into PHP-8.2 2023-08-07 19:02:44 +01:00
Kévin Dunglas 96885bc04f fix: handle the GNU specific version of strerror_r
Close GH-11882
2023-08-07 19:01:24 +01:00
Niels Dossche 5018dfecdf Remove useless hashmap check
php_libxml_unlink_entity is called from a hashmap iterator, so using
xmlHashLookup to check if it comes from that hashmap will always be
true.
2023-08-07 19:53:20 +02:00
Niels Dossche 3ad5029442 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix GH-11830: ParentNode methods should perform their checks upfront
  Fix manually calling __construct() on DOM classes
2023-08-07 19:52:04 +02:00
Niels Dossche b80ded8303 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix GH-11830: ParentNode methods should perform their checks upfront
  Fix manually calling __construct() on DOM classes
2023-08-07 19:47:27 +02:00
Niels Dossche dddd309da4 Fix GH-11830: ParentNode methods should perform their checks upfront
Closes GH-11887.
2023-08-07 19:39:05 +02:00
Niels Dossche 08c4db7f36 Fix manually calling __construct() on DOM classes
Closes GH-11894.
2023-08-07 19:37:47 +02:00
Niels Dossche e701b2fee7 Make DOMChildNode::remove() run in O(1) performance
This method had some useless logic in it. It checked whether the child
node is a child of its parent, which is always true of course.
But I know where this check comes from, if you follow the spec closely
you'll find that the spec used to have explicit child and parent
arguments for the removal algorithm [1].
That's because that algorithm is written in a generic way, where the
parent and child arguments might not come from the same subtree.
However, in this particular case it *is* always the case that the child
is a child of its parent. The checks weren't needed back then for
DOMChildNode::remove(), and are still not needed today.

[1] e.g. https://web.archive.org/web/20180601092634/https://dom.spec.whatwg.org/#concept-node-remove
2023-08-07 17:32:46 +02:00
Ilija Tovilo efc73f24c3 Revert "Call cast_object handler from get_properties_for"
This reverts commit 4182813ebf.
2023-08-07 12:58:12 +02:00
Ilija Tovilo 7397607f44 Merge branch 'PHP-8.2'
* PHP-8.2:
  Don't test macOS & i386 without opcache on push
2023-08-07 12:26:51 +02:00
Ilija Tovilo 16c6d60067 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Don't test macOS & i386 without opcache on push
2023-08-07 12:26:45 +02:00
Ilija Tovilo 5cd0208e9f Don't test macOS & i386 without opcache on push
It should be incredibly rare for something to fail only without opcache while
also being platform specific. We're keeping opcache-less tests for x64 Linux,
macOS and i386 will continue to be tested without opcache in nightly.

Closes GH-11867
2023-08-07 12:25:24 +02:00
Niels Dossche 872bf56fed Remove useless check
This is a remnant from the time the parser could be invoked statically.
2023-08-06 17:15:43 +02:00
Niels Dossche 3ff7d18070 [ci skip] NEWS for fa397e02 and 6f6fedcb 2023-08-05 22:12:04 +02:00
Alexandre Daubois 4f84b159b9 ext/pdo_pgsql: Improve tests cleanup (#11855) 2023-08-05 02:11:57 +01:00
Kamil Tekiela 82934746b7 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix MySQL Statement has a empty query result when the response field has changed, also Segmentation fault
2023-08-04 22:54:30 +01:00
Levi Morrison 0311e60eb4 Add php_version and php_version_id PHPAPI funcs (#11875)
Mostly, extensions will use `PHP_VERSION` and `PHP_VERSION_ID`
respectfully but sometimes they want to grab the version at run-time
rather than at compile-time. For example, extensions which distribute
pre-built binaries may want this.
2023-08-04 15:39:50 -06:00
Kamil Tekiela 4db701c049 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix MySQL Statement has a empty query result when the response field has changed, also Segmentation fault
2023-08-04 22:31:18 +01:00
Yurun ca5d48213a Fix MySQL Statement has a empty query result when the response field has changed, also Segmentation fault
Closes GH-11551.
2023-08-04 22:25:01 +01:00
Niels Dossche 1b092c6aa2 Merge branch 'PHP-8.2'
* PHP-8.2:
  Mark buildFromIterator test as conflicting
2023-08-04 21:09:03 +02:00
Niels Dossche 00ab6bb078 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Mark buildFromIterator test as conflicting
2023-08-04 21:08:57 +02:00
Niels Dossche dc586b121a Mark buildFromIterator test as conflicting
Commit 0b2e6bc2b0 started caching the directory entry type to improve
performance. Shortly after, we've seen flaky failures of the
buildFromIterator phar test.

When it fails, it's always a value error in the constructor of
RecursiveDirectoryIterator::__construct() with a "no such file or
directory" error. What's happening here is this:
1) A parallel test creates a subdirectory in the current working dir.
2) This test checks hasChildren() on a directory entry, the cached entry
   returns "yes" on the subdirectory.
3) The parallel test finishes and removes the subdirectory.
4) The constructor mentioned above is called, causing an exception
   because the directory is gone.

This race has always been possible, even before said commit. It's just
that it was very hard to hit before: the expensive stat call made the
race window hard to hit. The race is now easier to hit because of the
caching that is fast.

Since there's many tests that modify the current working directory, it
seems best to mark this as an "all" conflict. We cannot avoid every
TOC-TOU race when working with files with these phar tests.

In particular, mounteddir.phpt caused every conflict I saw on CI, but
there's more tests that create subdirectories in the current working
directory.

Closes GH-11869.
2023-08-04 21:08:39 +02:00
George Peter Banyard aecedd25dd [skip ci] Reorder extension sections in UPGRADING 2023-08-04 18:24:53 +01:00