1
0
mirror of https://github.com/php/php-src.git synced 2026-03-28 10:12:18 +01:00
Commit Graph

6434 Commits

Author SHA1 Message Date
Daniel Scherzer
ea75635f1d Update versions for PHP 8.5.2 2026-01-13 13:40:53 -08:00
Niels Dossche
c35224e11c Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-20352: UAF in php_output_handler_free via re-entrant ob_start() during error deactivation
2025-12-19 19:37:11 +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
Saki Takamachi
2ec8c29fda PHP-8.4 is now for PHP 8.4.17-dev 2025-12-03 14:52:20 +09:00
Eric Mann
e10f6d702f PHP-8.3 is now for PHP 8.3.30-dev 2025-12-02 09:05:38 -08:00
Volker Dusch
d8fbe40efb PHP-8.5 is now for PHP 8.5.2-dev 2025-12-02 12:14:28 +01:00
David Carlier
227541cb96 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-20601: ftp_connect() timeout argument overflow.
2025-11-29 23:06:15 +00:00
David Carlier
1701589884 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-20601: ftp_connect() timeout argument overflow.
2025-11-29 23:05:37 +00:00
David Carlier
4312a446d0 Fix GH-20601: ftp_connect() timeout argument overflow.
close GH-20603
2025-11-29 23:05:14 +00:00
Niels Dossche
eb733a3127 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-20286: use-after-destroy during userland stream_close()
2025-11-23 17:51:35 +01:00
Niels Dossche
27f17c3322 Fix GH-20286: use-after-destroy during userland stream_close()
Closes GH-20493.

Co-authored-by: David Carlier <devnexen@gmail.com>
2025-11-23 17:46:28 +01:00
Daniel Scherzer
2711864e82 Revert "Deprecate returning non-string values from a user output handler (#18932)" (#20455)
This partially reverts commit d8577d9bfb, and
reverts parts of 07f1cfd9b0.
2025-11-11 15:22:25 -08:00
Niels Dossche
ee9773bdc6 Fix nightly failure due to OnChangeMemoryLimit changes (#20450) 2025-11-11 13:40:04 +01:00
manuel
9b752a3d2b Commit the actual fix for GH-17951
Sorry, my (ilutov's) bad. I reverted the change to verify the test, but forgot
to undo before pushing.
2025-11-11 01:44:50 +01:00
Volker Dusch
78107c4a9a PHP 8.5 is now for PHP 8.5.1-dev 2025-11-04 19:55:56 +01:00
Calvin Buckley
57deb6c11b PHP 8.4 is now for PHP 8.4.16-dev
(Looks like this wasn't bumped for 8.4.15-dev previously)
2025-11-04 12:07:39 -04:00
Jakub Zelenka
17f253a1f2 PHP-8.3 is now for PHP 8.3.29-dev 2025-11-04 15:13:43 +01:00
Jakub Zelenka
45451740e3 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-19798: XP_SOCKET XP_SSL: Incorrect condition for Win
2025-10-23 15:26:05 +02:00
Jakub Zelenka
2a0931d347 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-19798: XP_SOCKET XP_SSL: Incorrect condition for Win
2025-10-23 15:22:21 +02:00
Jakub Zelenka
eef11e048d Fix GH-19798: XP_SOCKET XP_SSL: Incorrect condition for Win
This fixes incorrect type conversion and subsequent check for Windows
where returned socket is not an int.

It should be noted that this is not really an issue as previous int
would get negative so the check should still work. The issue actually
happens only in master (PHP 8.5) where refactoring has been done and the
type changed.

Closes GH-19881
2025-10-23 15:11:14 +02:00
Eric Mann
91eb2a558d PHP-8.3 is now for PHP 8.3.28-dev 2025-10-07 06:58:36 -07:00
Tim Düsterhus
7858a83613 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Regenerate main/debug_gdb_scripts.c
2025-10-06 20:45:46 +02:00
Tim Düsterhus
08924cd8c4 Regenerate main/debug_gdb_scripts.c
Following 9d9b73a3f0 / GH-20077.
2025-10-06 20:45:14 +02:00
Niels Dossche
ff7e1e7105 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-19570: unable to fseek in /dev/zero and /dev/null
2025-10-06 18:16:48 +02:00
Niels Dossche
2edb369181 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-19570: unable to fseek in /dev/zero and /dev/null
2025-10-06 18:16:37 +02:00
Niels Dossche
b7aeb0a69f Fix GH-19570: unable to fseek in /dev/zero and /dev/null
On Linux, these two character devices are exceptions in that they can be
seeked. Check their major/minor device number.

Co-authored-by: divinity76 <hans@loltek.net>
2025-10-06 18:16:16 +02:00
Jakub Zelenka
010e178a40 Merge branch 'PHP-8.4' into PHP-8.5 2025-10-02 19:23:26 +02:00
Jakub Zelenka
57e1438ca5 Merge branch 'PHP-8.3' into PHP-8.4 2025-10-02 19:22:59 +02:00
Jakub Zelenka
288d698ce4 Prevent use after stack scope in stream strerr code (#20040) 2025-10-02 19:22:28 +02:00
Jakub Zelenka
d44eb76c91 Merge branch 'PHP-8.4' into PHP-8.5 2025-10-02 13:44:35 +02:00
Jakub Zelenka
10eb3d69c7 Merge branch 'PHP-8.3' into PHP-8.4 2025-10-02 13:43:47 +02:00
Jakub Zelenka
a3c14d6ab4 Do not use errno_t as it is not defined on musl (#20037) 2025-10-02 13:42:11 +02:00
David Carlier
7760e43ad1 Merge branch 'PHP-8.4' into PHP-8.5 2025-10-02 12:31:59 +01:00
David Carlier
3193fe0728 Merge branch 'PHP-8.3' into PHP-8.4 2025-10-02 12:30:41 +01:00
David Carlier
175afc4085 Fix GH-19705: do not flush/write buffer on non writeable stream.
Co-authored-by: Jakub Zelenka <bukka@php.net>

close GH-19708
2025-10-02 12:28:36 +01:00
Niels Dossche
31fefe0e09 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-17345: Bug #35916 was not completely fixed
2025-10-01 11:50:12 +02:00
Niels Dossche
7dd7ad843d Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-17345: Bug #35916 was not completely fixed
2025-10-01 11:50:05 +02:00
Niels Dossche
0ffa337a54 Fix GH-17345: Bug #35916 was not completely fixed
Change the reproducer code in `bug35916.phpt` from `stream_bucket_append` to
`stream_bucket_prepend` and you have the same bug.
Furthermore, even in the append case the check is incorrect because the bucket
can already be in the brigade at a position other than the tail.
To solve this properly, unlink the brigade first and also use that as a
condition to manage the refcount.

Closes GH-18973.
2025-10-01 11:49:28 +02:00
Jakub Zelenka
879d5e9b88 Merge branch 'PHP-8.4' into PHP-8.5 2025-10-01 11:14:27 +02:00
Jakub Zelenka
152dfa8835 Merge branch 'PHP-8.3' into PHP-8.4 2025-10-01 11:12:42 +02:00
Jakub Zelenka
b7fdfb7147 Fix GH-19248: Use strerror_r instead of strerror in main
Or on Windows it is going to use either FormatMessageW or strerror_s
for compatibility with previous error messages.

It also needs to accomodate for GNU and BSD versions of strerror_r
returning different type.

Closes GH-19251
2025-10-01 11:12:08 +02:00
David Carlier
ed9c1b87ee Merge branch 'PHP-8.4' into PHP-8.5 2025-09-29 22:48:55 +01:00
David Carlier
03de7b0b28 Merge branch 'PHP-8.3' into PHP-8.4 2025-09-29 22:48:38 +01:00
David Carlier
93bac8cb1a Fix GH-19922: gzopen() double free
close GH-19924
2025-09-29 22:47:29 +01:00
Daniel Scherzer
ea580760f0 Prepare for PHP 8.5.0RC1 2025-09-23 15:11:52 -04:00
Gina Peter Banyard
b4ed215299 core: Warn when non-representable floats are coerced to int (#19760)
RFC: https://wiki.php.net/rfc/warnings-php-8-5#casting_out_of_range_floats_to_int
2025-09-21 23:53:16 +01:00
Arnaud Le Blanc
ef9a89f7ec Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-19480: error_log php.ini cannot be unset when open_basedir is configured
2025-09-19 18:13:55 +02:00
Arnaud Le Blanc
938226083e Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-19480: error_log php.ini cannot be unset when open_basedir is configured
2025-09-19 14:16:48 +02:00
Niels Dossche
7a1bb71127 Fix GH-19480: error_log php.ini cannot be unset when open_basedir is configured
Since the ini message handlers already check for basedir, we need to
drop the basedir check from ini_set. Then we also fix the exceptional
case for the empty string: it should bypass the basedir check.
Furthermore, there was a regression introduced with the error_log
"syslog" check in ddfe269a (inverted check), so we fix that as well.

Closes GH-19487
2025-09-19 14:14:53 +02:00