Release Information
- Release Type
- Bug Fix Release
- Release Status
- QA Release Latest
- Branch Status
- Upcoming Release
PHP 8.4 is a development version, and is not recommended for production use. PHP 8.4 is scheduled to reach General Availability on 2024-11-21. This is the latest QA release in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.0RC4
./buildconf
), configuring the build ./configure
, and running make
.Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
Windows binaries
Docker/Podman Containers
docker pull php:8.4.0RC4-cli-alpine
docker pull php:8.4.0RC4-cli
docker pull php:8.4.0RC4-fpm-alpine
docker pull php:8.4.0RC4-apache
docker pull php:8.4.0RC4-fpm
ChangeLog
BcMath
- Fixed bug GH-16265 (Added early return case when result is 0)
- Fixed bug GH-16262 (Fixed a bug where size_t underflows)
Core
- Fixed bug GH-16574 (Incorrect error "undefined method" messages).
- Fixed bug GH-16577 (EG(strtod_state).freelist leaks with opcache.preload).
- Fixed bug GH-16615 (Assertion failure in
zend_std_read_property
). - Fixed bug GH-16342 (Added
ReflectionProperty::isLazy()
). - Fixed bug GH-16648 (Use-after-free during array sorting).
Date
- Fixed bug GH-14732 (
date_sun_info()
fails for non-finite values).
DOM
- Fixed bug GH-16594 (Assertion failure in DOM -> before).
- Fixed bug GH-16593 (Assertion failure in DOM->replaceChild).
- Fixed bug GH-16595 (Another UAF in DOM -> cloneNode).
FPM
- Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement).
GD
- Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007).
GMP
- Fixed segfaults and other issues related to operator overloading with GMP objects.
Opcache
- Fixed bug GH-16572 (Incorrect result with reflection in low-trigger JIT).
OpenSSL
- Fix various memory leaks on error conditions in openssl_x509_parse().
PDO
- Fixed bug GH-16167 (Prevent mixing PDO sub-classes with different DSN).
- Fixed bug GH-16314 ("Pdo\Mysql object is uninitialized" when opening a persistent connection).
PDO_ODBC
- Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values).
Reflection
- Fixed bug GH-16601 (Memory leak in Reflection constructors).
Session
- Fixed bug GH-16590 (UAF in
session_encode()
).
SPL
- Fixed bug GH-16588 (UAF in Observer->serialize).
- Fix GH-16477 (Segmentation fault when calling debugInfo() after failed SplFileObject::constructor).
- Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()).
- Fixed bug GH-16604 (Memory leaks in SPL constructors).
- Fixed bug GH-16646 (UAF in
ArrayObject::unset()
andArrayObject::exchangeArray()
).
SysVShm
- Fixed bug GH-16591 (Assertion error in shm_put_var).
Commit List
Arnaud Le Blanc
- Fix tests: Prevent stack overflow during dtor in f3e87e2a6d
- Fix assertion failure in
zend_std_read_property
in 3d3b22ddf2 - Add
ReflectionProperty::isLazy()
in 54a40f3bde
Bob Weinand
- Fix test without extra curl features in 824c81602b
Calvin Buckley
- Update versions for PHP 8.4.0RC4 in e51452ed73
Christoph M. Becker
- Dynamically
xfail
test case which fails on CI in bdde797159 - Dynamically
xfail
test case which fails on CI in 7cc327fd5a - Adapt
ext/intl
tests for ICU 75.1 in e111bf72d7 - Fix GH-16450: PDO_ODBC can inject garbage into field values in c9eafc1954
- Properly initialize _override executor globals in ec68d3c608
- Adapt
ext/intl
tests for ICU 76.1 in 3245a65034 - Fix GH-14732:
date_sun_info()
fails for non-finite values in f9453a889d
David Carlier
ext/gmp
: gmp_pow fix FPE with large values in e0a0e216a9- Fix GH-14687 segfault on debugging a freed SplObjectIterator instance in eeec0939e0
- Fix GH-16592
msg_send()
crashes when the type does not serialize as expected in 90aac521fd
Gina Peter Banyard
- Fix GH-16477 (Segmentation fault when calling debugInfo() after failed SplFileObject::constructor) in 9f5b5e34c3
- Fix GH-16477 (Segmentation fault when calling debugInfo() after failed SplFileObject::constructor) in a19029fc8b
- Fix GH-16477 (Segmentation fault when calling debugInfo() after failed SplFileObject::constructor) in 5d993e9641
ext/gmp
: Add behavioural tests for operator overloading in fe02fd5095ext/gmp
: Fix segfault when null is encountered on an overloaded operator in 5253647500
Ilija Tovilo
- Fix
gh16508.phpt
test expectation in dded6fdcad - Backport CI fixes to security branches in 25c0993902
- Fix icu dependency for macos build in e3de1a1a21
- Backport nightly.yml and
nightly_matrix.php
to PHP-8.1 in 27e8860594 - [CI] Backport usage of db service for 8.1 in 560a585117
- Partial backport of e7462bf in ed041c3443
- Remove -Werror for libmysql test on 8.1 only in 769947648e
- Fix array going away during sorting in 2bdce61390
- Postpone
zend_array_sort()
in ext-intl in 845cdbce67 - Fix use-after-free in
ArrayObject::unset()
with destructor in 8910ac800d - Also fix same issue in
ArrayObject::exchangeArray()
in f7222bd2de - Add NEWS entry in 418f820f5d
Máté Kocsis
- Fix GH-16131: Prevent mixing PDO sub-classes with different DSN in 5892991941
- Fix GH-16314 "Pdo\Mysql object is uninitialized" when opening a persistent connection in GH-16369
Niels Dossche
- Fix GH-16559: UBSan abort in ext/gd/libgd/gd_interpolation.c:1007 in e1e1e64a32
- Fix GH-16574: Incorrect error "undefined method" messages in e9283c0819
- Fix GH-16588: UAF in Observer->serialize in 144d2ee29a
- Fix GH-16591: Assertion error in shm_put_var in 992ac1c25a
- Fix GH-16589: UAF in SplDoublyLinked->serialize() in 8f60309a78
- Fix GH-16577: EG(strtod_state).freelist leaks with opcache.preload in 757781a142
- Fix GH-16572: Incorrect result with reflection in low-trigger JIT in 38e1b0ac8c
- Fix GH-16594: Assertion failure in DOM -> before in 947e319b76
- Fix GH-16593: Assertion failure in DOM->replaceChild in d89dd28d3b
- Fix GH-16595: Another UAF in DOM -> cloneNode in 9d8983c061
- Fix static analysis warning in 65fbf47472
- Add missing cache invalidation for innerHTML in GH-16652
- Fix GH-16604: Memory leaks in SPL constructors in 886a5287ca
- Fix GH-16601: Memory leak in Reflection constructors in f0f666ba3f
- Fix GH-16628: FPM logs are getting corrupted with this log statement in e643129bbb
- Fix various memory leaks on error conditions in
openssl_x509_parse()
in 5ddb75660d - Fix GH-16590: UAF in
session_encode()
in cc39bc21e3