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

136186 Commits

Author SHA1 Message Date
Calvin Buckley
5b8c48596e Fix skipif for mkfifo usage in gh20582.phpt (#20804)
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 test with (using --disable-all).

(cherry picked from commit bd484ed65f)
2026-01-13 23:33: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
bae78c614a Fix GH-19962: arrayIndexThenCheck static analysis warning in firebird
Same as ce534c612b.
2025-12-28 13:08:40 +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
2709ebc0ce Fix OOB gzseek() causing assertion failure
Closes GH-20785.
2025-12-28 00:21:32 +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
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
494dd97521 Fix NEWS formatting 2025-12-24 13:29:23 +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
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
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
9a7c09c963 intl: Fix leak in umsg_format_helper()
Closes GH-20756.
2025-12-22 12:06:59 +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
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
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
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
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
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
Tim Düsterhus
6f61244a03 Update GitHub Action workflows to actions/cache@v5
Keep this up to date in all nonbranches, because the node.js runtime for older
versions might get deprecated in the future and fixing this for all branches at
once is easier.

see 2650248a92
2025-12-17 14:00:56 +01:00
Tim Düsterhus
bb70c5589a Update GitHub Action workflows to actions/checkout@v6
Keep this up to date in all nonbranches, because the node.js runtime for older
versions might get deprecated in the future and fixing this for all branches at
once is easier.

see 2650248a92
2025-12-17 14:00:10 +01:00
Pierrick Charron
d92fa57a78 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  PHP-8.2 is now for PHP 8.2.31-dev
2025-12-17 07:48:54 -05:00
Pierrick Charron
6836c230ed PHP-8.2 is now for PHP 8.2.31-dev 2025-12-16 12:42:07 -05:00
Ilija Tovilo
fb1ec9a5a7 Fix uncatchable exception thrown in generator
This procedure may be called during i_free_compiled_variables(), when
EG(current_execute_data) is unfortunately already reset to the parent frame.
EG(opline_before_exception) does not actually belong to this frame. Furthermore,
setting opline to EG(exception_op) early will miss a later
zend_rethrow_exception(), which will also miss installation of the correct
EG(opline_before_exception).

Fixes GH-20714
Closes GH-20716
2025-12-16 17:30:05 +01:00
Jakub Zelenka
e776695abf Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Update NEWS with info about security issues
  Fix GHSA-www2-q4fc-65wf
  Fix GHSA-h96m-rvf9-jgm2
  Fix GHSA-8xr5-qppj-gvwj: PDO quoting result null deref
  Fix GH-20584: Information Leak of Memory
2025-12-16 15:34:19 +01:00
Jakub Zelenka
6e124d0df6 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Update NEWS with info about security issues
  Fix GHSA-www2-q4fc-65wf
  Fix GHSA-h96m-rvf9-jgm2
  Fix GHSA-8xr5-qppj-gvwj: PDO quoting result null deref
  Fix GH-20584: Information Leak of Memory
2025-12-16 15:30:54 +01:00
Jakub Zelenka
c48a9f42d3 Update NEWS with info about security issues 2025-12-16 15:26:59 +01:00
Niels Dossche
ed70b1ea43 Fix GHSA-www2-q4fc-65wf 2025-12-16 15:26:59 +01:00
Niels Dossche
8b801151bd Fix GHSA-h96m-rvf9-jgm2 2025-12-16 15:26:59 +01:00
Jakub Zelenka
727a4ddc39 Fix GHSA-8xr5-qppj-gvwj: PDO quoting result null deref 2025-12-16 15:26:59 +01:00
Niels Dossche
c5f28c7cf0 Fix GH-20584: Information Leak of Memory
The string added had uninitialized memory due to
php_read_stream_all_chunks() not moving the buffer position, resulting
in the same data always being overwritten instead of new data being
added to the end of the buffer.

This is backport as there is a security impact as described in
GHSA-3237-qqm7-mfv7 .
2025-12-16 15:26:58 +01:00
Ilija Tovilo
aaae117157 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix curl protocols test expectation
2025-12-15 23:52:00 +01:00
Ilija Tovilo
06b8b75d2e Fix curl protocols test expectation
Closes GH-17803

(cherry picked from commit 5b87faaaa7)
2025-12-15 23:51:48 +01:00
Niels Dossche
85cb6e421a Fix GH-20695: Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()
I think there's simply a reasoning error about when which scanner state
can cause which parser component to invoke later on.

Closes GH-20702.
2025-12-15 22:46:27 +01:00
Niels Dossche
8ffedc873a Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Make bug70417.phpt less flaky
2025-12-15 08:14:56 +01:00
Niels Dossche
2c4163c90c Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Make bug70417.phpt less flaky
2025-12-15 08:14:48 +01:00
Niels Dossche
2bf2411976 Make bug70417.phpt less flaky
Closes GH-20287.

(cherry picked from commit ed9529a7d3)
2025-12-15 08:14:41 +01:00
Yuya Hamada
0056d013bf Fix GH-20674 mb_decode_mimeheader does not handle separator
`?=  =?` is skipped if long term, so skip space character.
Add test case from RFC2047 and fix last pattern
See: https://www.ietf.org/rfc/rfc2047#section-8
2025-12-15 10:55:17 +09:00
Niels Dossche
802ad3c6a4 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  sapi/fpm: remove use of variable-length arrays (#10645)
2025-12-14 23:31:00 +01:00
Niels Dossche
4d28e2af9e Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  sapi/fpm: remove use of variable-length arrays (#10645)
2025-12-14 23:30:54 +01:00
Max Kellermann
5850c7de7c sapi/fpm: remove use of variable-length arrays (#10645)
According to @cmb69, PHP does not require VLA support
(https://github.com/php/php-src/pull/10304#discussion_r1069343092).
VLAs are a bad idea for several reasons, so let's get rid of them.

Two of the VLAs were probably unintended; unlike C++, C doesn't have
the concept of "constant expressions", so an array with a "const"
length is technically still a VLA.  This is fixed by removing the
"const" variable, and using sizeof() instead.

(cherry picked from commit ff2a211d55)
2025-12-14 23:30:37 +01:00
Niels Dossche
acd0898bdf Fix GH-20699: SQLite3Result fetchArray return array|false, null returned
Closes GH-20701.
2025-12-14 23:17:31 +01:00
Kamil Tekiela
dbf56e0eba Squashed commit of the following:
commit c4adcbe582
Author: Kamil Tekiela <tekiela246@gmail.com>
Date:   Fri Oct 17 15:32:14 2025 +0100

    Add NEWS

commit 84a6e675af
Author: Kamil Tekiela <tekiela246@gmail.com>
Date:   Fri Oct 17 14:49:26 2025 +0100

    Handle errors in mysqli_begin_transaction
2025-12-14 15:25:34 +00:00
David Carlier
97a90f4361 Fix GH-20678: resource created by GlobIterator crashes with fclose().
close GH-20697
2025-12-14 11:58:18 +00:00
Ilija Tovilo
b37a6e73b1 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix xcode-select
2025-12-13 20:30:03 +01:00
Ilija Tovilo
9bd587801d Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix xcode-select
2025-12-13 20:29:56 +01:00
Ilija Tovilo
6cdb8bf0a2 Fix xcode-select
The old Xcode sticks around, so make sure we sort in reverse to pick the newer
version. Technically we should use something like sort -Vr, but -V doesn't exist
on macOS. But that won't be a problem until Xcode 100, which my great great
grand children can worry about.
2025-12-13 20:27:14 +01:00