1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Commit Graph

140724 Commits

Author SHA1 Message Date
Calvin Buckley
ba7218ca01 Fix skipif for mkfifo usage in gh20582.phpt
Makes it like ext/standard/tests/file/filetype_variation.phpt; it's not
just Windows that can have a missing posix_mkfifo, but also a minimal
build, like the ones suggested that RMs (using --disable-all).
2026-01-12 17:12:08 -04:00
Jakub Zelenka
5ee2add76b Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  PHP-8.3 is now for PHP-8.3.31
2025-12-30 13:15:22 +01:00
Jakub Zelenka
404b4c816a PHP-8.3 is now for PHP-8.3.31 2025-12-30 13:14:00 +01:00
Alexandre Daubois
edf4cc40bd Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix variable assignment for PHP argument escaping in `run-tests.php` (#20799)
2025-12-29 14:50:19 +01:00
Sharad Chandran R
7effcab2cf Fix variable assignment for PHP argument escaping in run-tests.php (#20799) 2025-12-29 14:49:21 +01:00
Niels Dossche
29e04acc6f Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-19962: arrayIndexThenCheck static analysis warning in firebird
2025-12-28 13:09:05 +01:00
Niels Dossche
bae78c614a Fix GH-19962: arrayIndexThenCheck static analysis warning in firebird
Same as ce534c612b.
2025-12-28 13:08:40 +01:00
Niels Dossche
fa8bb98ec0 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-19961: Static analysis arrayIndexThenCheck warning in firebird (#20790)
2025-12-28 13:04:27 +01:00
Niels Dossche
ce534c612b Fix GH-19961: Static analysis arrayIndexThenCheck warning in firebird (#20790)
Static analysis reports that the bounds check comes after reading the
byte from the buffer.
In practice, this is tagged data that loops until the end tag is found
and therefore there isn't really a bug. The extra length check is only
there for extra hardening.
So we simply silence the static analysers and improve the hardening.

See also https://docwiki.embarcadero.com/InterBase/15/en/Isc_dsql_sql_info()
2025-12-28 13:04:16 +01:00
Niels Dossche
dabcd74524 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix OOB gzseek() causing assertion failure
2025-12-28 00:21:56 +01:00
Niels Dossche
2709ebc0ce Fix OOB gzseek() causing assertion failure
Closes GH-20785.
2025-12-28 00:21:32 +01:00
Máté Kocsis
14d8e84236 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  fix: Allow variadic syntax in PHPDoc parameter annotation in `gen_stub.php` (#20342)
2025-12-27 12:54:04 +01:00
Michael Telgmann
09cb5ad442 fix: Allow variadic syntax in PHPDoc parameter annotation in gen_stub.php (#20342)
Closes #20277

Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
2025-12-27 12:53:15 +01:00
Niels Dossche
48b4289dff Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-20582: Heap Buffer Overflow in iptcembed
2025-12-26 22:44:14 +01:00
Niels Dossche
99ed66b49f Fix GH-20582: Heap Buffer Overflow in iptcembed
If you can extend the file between the file size gathering (resulting in
a buffer allocation), and reading / writing to the file you can trigger a
TOC-TOU where you write out of bounds.
To solve this, add extra bound checks and make sure that write actions
always fail when going out of bounds.
The easiest way to trigger this is via a pipe, which is used in the
test, but it should be possible with a regular file and a quick race
condition as well.

Closes GH-20591.
2025-12-26 22:43:45 +01:00
Niels Dossche
40c291cf93 Fix GH-20444: Dom\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()
C14N code expects namespace to be in-tree, but we store namespaces in a
different way out-of-tree to avoid reconciliations that break the tree
structure in a way unexpected by the DOM spec. In the DOM spec,
namespace nodes don't exist; they're regular attributes.
To solve this, we temporarily make fake namespace nodes that we later
remove.

Closes GH-20457.
2025-12-26 22:27:25 +01:00
Giovanni Giacobbi
7d4ba80705 gen_stub: Fix php-parser package download (#20775)
If the system wgetrc has the `content-disposition = on` option, the file is
actually saved as `PHP-Parser-5.0.0.tar.gz`, causing a subsequent failure.

Even with `content-disposition = off`, if for any reason the download file
already exists and is corrupted, it won't be overwritten, and a new file
such as `v5.0.0.tar.gz.1` is saved instead.

We solve both problems by enforcing the name of the downloaded file.

Also, if for any other reason the unpacking should fail, remove the created
directory to allow further attempts.
2025-12-25 21:10:29 +01:00
Gina Peter Banyard
20f9772063 ext/standard: Fix memory leak in mail() when header key is numeric
Closes GH-20776
2025-12-25 19:42:31 +01:00
David Carlier
5faa54d93b ext/pcntl: fix pcntl_getcpuaffinity() for solaris.
trusting the call to handle invalid process id via errnos.

see https://github.com/php/php-src/pull/20709#discussion_r2630221301 for
rationale.

close GH-20731
2025-12-24 16:10:13 +00:00
Niels Dossche
7f56d4a23f Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix NEWS formatting
2025-12-24 13:29:45 +01:00
Niels Dossche
494dd97521 Fix NEWS formatting 2025-12-24 13:29:23 +01:00
Niels Dossche
8c860ce66e [ci skip] Add missing EXTENSIONS dependency to test 2025-12-23 11:27:34 +01:00
Ilija Tovilo
f46741e554 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Drop CI for 8.1
2025-12-22 17:56:53 +01:00
Ilija Tovilo
f3b9482ed5 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Drop CI for 8.1
2025-12-22 17:56:39 +01:00
Ilija Tovilo
4d9a038fd0 [skip ci] Drop CI for 8.1 2025-12-22 17:56:03 +01:00
David Carlier
250fd02851 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  ext/posix: (Further) fix groups array creation on macos.
2025-12-22 12:54:36 +00:00
David Carlier
e63dae2941 ext/posix: (Further) fix groups array creation on macos.
With macos Tahoe and clang "17.0.0" (Xcode) the ext/posix/tests/posix_getgrgid_macosx.phpt test crashes as follow:

ext/posix/posix.c:681:19: runtime error: load of misaligned address 0x60800000e972 for type 'char **', which requires 8 byte alignment
0x60800000e972: note: pointer points here
70 00  2a 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00
seems memcpy had been translated to a load instruction ?
anyhow, we force to copy a "proper" char * source.

close GH-20744
2025-12-22 12:53:53 +00:00
Arnaud Le Blanc
2100ca08ec Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix zend_vm_gen.php when executed with PHP 8.5
2025-12-22 12:51:29 +01:00
Arnaud Le Blanc
d3ef80649e Fix zend_vm_gen.php when executed with PHP 8.5
PHP 8.5 defines constant ZEND_VM_KIND since GH-19574, but this name is also
used by zend_vm_gen.php. This causes zend_vm_gen.php to generate invalid
code when executed with PHP 8.5 in an older branch.

Here I rename the constant in zend_vm_gen.php.
2025-12-22 12:51:04 +01:00
Niels Dossche
e90b48c8e5 Fix bug #74154: Phar extractTo creates empty files
The current code causes the phar entry to remain in the fname cache.
This would be fine for uncompressed phars, but is a problem for
compressed phars when they try to reopen the file pointer.
The reopen code will try to use the compressed file pointer as if it
were an uncompressed file pointer. In that case, for the given test, the
file offsets are out of bounds for the compressed file pointer because
they are the uncompressed offsets. This results in empty files.
In other cases, it's possible to read compressed parts of the file that don't
belong to that particular file.
To solve this, we simply remove the phar entry from the fname cache if
the file pointer was closed but the phar is compressed. This will make
sure that reopening the phar will not go through the cache and instead
opens up a fresh file pointer with the right decompression settings.

Closes GH-20754.
2025-12-22 12:19:21 +01:00
Niels Dossche
10bbd9590b Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  intl: Fix leak in umsg_format_helper()
2025-12-22 12:12:42 +01:00
Niels Dossche
9a7c09c963 intl: Fix leak in umsg_format_helper()
Closes GH-20756.
2025-12-22 12:06:59 +01:00
Niels Dossche
9cde911350 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Use EVP_MD_CTX_destroy() instead of EVP_MD_CTX_free() for compatibility and consistency
2025-12-21 22:29:19 +01:00
Giovanni Giacobbi
f89a3503bf Use EVP_MD_CTX_destroy() instead of EVP_MD_CTX_free() for compatibility and consistency
Closes GH-20748.
2025-12-21 22:28:57 +01:00
Niels Dossche
cf4e8e0ef6 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  phar: Fix SplFileInfo::openFile() in write mode
2025-12-21 13:18:23 +01:00
Niels Dossche
efde160ef4 phar: Fix SplFileInfo::openFile() in write mode
This stopped working after e735d2bc3b because fp_refcount is increased,
making phar think that the file has open read pointers.
To fix this, the refcount shouldn't be increased but that would
re-introduce the previous bug.
Instead, we need to add a field that "locks" the existence of the
internal entry separate from the refcount.

Closes GH-20473.
2025-12-21 13:17:54 +01:00
Niels Dossche
9686936378 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-20732: Phar::LoadPhar undefined behavior when loading directory
2025-12-20 11:16:13 +01:00
Niels Dossche
22aaa20dab Fix GH-20732: Phar::LoadPhar undefined behavior when loading directory
The size of `got` was incorrect: it being unsigned means that the error
return codes are converted from -1 to SIZE_MAX. We should use ssize_t
instead.

Closes GH-20735.
2025-12-20 11:15:47 +01:00
Niels Dossche
0590a34aee Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-20352: UAF in php_output_handler_free via re-entrant ob_start() during error deactivation
2025-12-19 19:36:53 +01:00
Niels Dossche
ee0143887d Fix GH-20352: UAF in php_output_handler_free via re-entrant ob_start() during error deactivation
The problem is that the code is doing `php_output_handler_free` in a loop on the output stack,
but prior to freeing the pointer on the stack in `php_output_handler_free` it calls
`php_output_handler_dtor` which can run user code that reallocates the stack,
resulting in a dangling pointer freed by php_output_handler_free.
Furthermore, OG(active) is set when creating a new output handler, but
the loop is supposed to clean up all handlers, so OG(active) must be
reset as well.

Closes GH-20356.
2025-12-19 19:36:26 +01:00
Niels Dossche
bf63341f35 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-20722: Null pointer dereference in DOM namespace node cloning via clone on malformed objects
2025-12-18 22:39:57 +01:00
Niels Dossche
983be089c0 Fix GH-20722: Null pointer dereference in DOM namespace node cloning via clone on malformed objects
Closes GH-20730.
2025-12-18 22:39:35 +01:00
Tim Düsterhus
eb1c0177fd Update GitHub Action workflows to actions/upload-artifact@v6 2025-12-17 15:30:00 +01:00
Tim Düsterhus
034ee3f47b Update GitHub Action workflows to actions/labeler@v6 2025-12-17 15:24:55 +01:00
Tim Düsterhus
302aed78ee Update GitHub Action workflows to actions/checkout@v6 (8.4) 2025-12-17 15:23:35 +01:00
Tim Düsterhus
32b8579b62 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Update GitHub Action workflows to `actions/checkout@v6` (8.3)
  Update GitHub Action workflows to `actions/checkout@v6` (8.2)
  Update GitHub Action workflows to `actions/cache@v5`
  Update GitHub Action workflows to `actions/checkout@v6`
2025-12-17 15:21:57 +01:00
Tim Düsterhus
7c1830b056 Update GitHub Action workflows to actions/checkout@v6 (8.3) 2025-12-17 15:21:31 +01:00
Tim Düsterhus
d076ca39ff Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Update GitHub Action workflows to `actions/checkout@v6` (8.2)
  Update GitHub Action workflows to `actions/cache@v5`
  Update GitHub Action workflows to `actions/checkout@v6`
2025-12-17 15:21:16 +01:00
Tim Düsterhus
61c35928fa Update GitHub Action workflows to actions/checkout@v6 (8.2) 2025-12-17 15:19:38 +01:00
Tim Düsterhus
0b5d0504b4 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Update GitHub Action workflows to `actions/cache@v5`
  Update GitHub Action workflows to `actions/checkout@v6`
2025-12-17 15:18:22 +01:00