Version 8.4
PHP 8.4.22
Released 04 Jun, 2026
date
  • Fixed bug GH-18422 (int overflow in php_date_llabs).
intl
  • Fix incorrect argument positions in out-of-bounds errors for IntlCalendar::set(), IntlCalendar::setDate(), IntlCalendar::setDateTime(), and IntlGregorianCalendar date/time construction.
  • Expose Spoofchecker restriction-level APIs on all supported ICU versions.
  • Fix SpoofChecker::setAllowedChars() and IntlDateFormatter::__construct() to report PHP constant names instead of ICU constant names in user-visible error messages.
mysqlnd
  • Fix persistent free of non-persistent connect_attr key .
opcache
  • Fixed tracing JIT crash when a VM interrupt is handled during an observed user function call.
  • Fixed bug GH-22004 (Assertion failure at ext/opcache/jit/zend_jit_trace.c).
openssl
  • Fix compatibility issues with OpenSSL 4.0.
spl
  • Fix SplFixedArray::setSize leak when destructor grows during clear.
  • Fixed bug GH-21933 (use after free of self-freeing MultipleIterator children).
standard
  • Fixed bug GH-21689 (version_compare() incorrectly handles versions ending with a dot).
  • Fixed ip2long() leading zeros handling inconsistency on AIX.
PHP 8.4.21
Released 07 May, 2026
core
  • Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors).
  • Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies).
  • Fixed bug GH-21605 (Missing addref for Countable::count()).
  • Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws).
  • Fixed bug GH-21603 (Missing addref for __unset).
  • Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV).
cli
  • Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings).
curl
  • Add support for brotli and zstd on Windows.
dom
  • Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263)
  • Fixed bug GH-21688 (segmentation fault on empty HTMLDocument).
  • Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079)
  • Fixed bug GH-21544 (Dom\XMLDocument::C14N*( drops namespace declarations on DOM-built documents).
fpm
iconv
  • Fixed bug GH-17399 (iconv memory leak on bailout).
mbstring
  • Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)
  • Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104)
opcache
  • Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg).
  • Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch).
  • Fixed bug GH-21460 (COND optimization regression).
  • Fixed faulty returns out of zend_try block in zend_jit_trace().
openssl
  • Fix a bunch of memory leaks and crashes on edge cases.
pdo_firebird
phar
  • Restore is_link handler in phar_intercept_functions_shutdown.
  • Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment).
  • Fix memory leak in Phar::offsetGet().
  • Fix memory leak in phar_add_file().
  • Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close).
  • Fix memory leak in phar_verify_signature() when md_ctx is invalid.
random
  • Fixed bug GH-21731 (Random\Engine\Xoshiro256StarStar::__unserialize() accepts all-zero state).
session
  • Fixed memory leak when session GC callback return a refcounted value.
soap
  • Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)
  • Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)
  • Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)
spl
  • Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free).
  • Fix concurrent iteration and deletion issues in SplObjectStorage.
standard
streams
  • Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set).
xsl
  • Fixed bug GH-21600 (Segfault on module shutdown).
zip
  • Fixed bug GH-21698 (memory leak with ZipArchive::addGlob() early return statements).
PHP 8.4.20
Released 09 Apr, 2026
bz2
  • Fix truncation of total output size causing erroneous errors.
core
dom
  • Fixed bug GH-21486 (Dom\HTMLDocument parser mangles xml:space and xml:lang attributes).
ffi
  • Fixed resource leak in FFI::cdef() onsymbol resolution failure.
gd
  • Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support).
opcache
  • Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results).
  • Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context).
  • Fixed bug GH-21395 (uaf in jit).
openssl
  • Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys).
  • Fix missing error propagation for BIO_printf() calls.
pcre
  • Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl.
pgsql
  • Fixed preprocessor silently guarding PGSQL_SUPPRESS_TIMESTAMPS support due to a typo.
snmp
  • Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments).
soap
  • Fixed Set-Cookie parsing bug wrong offset while scanning attributes.
spl
  • Fixed bug GH-21454 (missing write lock validation in SplHeap).
standard
  • Fixed bug GH-20906 (Assertion failure when messing up output buffers).
  • Fixed bug GH-20627 (Cannot identify some avif images with getimagesize).
sysvshm
  • Fix memory leak in shm_get_var() when variable is corrupted.
xsl
  • Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\XMLDocument).
  • Fixed bug GH-21496 (UAF in dom_objects_free_storage).
PHP 8.4.19
Released 12 Mar, 2026
core
  • Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds).
  • Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()).
  • Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()).
  • Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value).
  • Fixed bug GH-21215 (Build fails with -std=).
  • Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool).
curl
  • Fixed bug GH-21023 (CURLOPT_XFERINFOFUNCTION crash with a null callback).
  • Don't truncate length.
date
  • Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start).
  • Fix timezone offset with seconds losing precision.
dom
  • Fixed bug GH-21077 (Accessing Dom\Node::baseURI can throw TypeError).
  • Fixed bug GH-21097 (Accessing Dom\Node properties can can throw TypeError).
mbstring
  • Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries).
opcache
  • Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris).
  • Fixed bug GH-21227 (Borked SCCP of array containing partial object).
  • Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script).
openssl
  • Fix a bunch of leaks and error propagation.
pcntl
  • Fixed pcntl_setns() internal errors handling regarding errnos.
  • Fixed cpuset leak in pcntl_setcpuaffinity on out-of-range CPU ID on NetBSD/Solaris platforms.
  • Fixed pcntl_signal() signal table registering the callback first OS-wise before the internal list.
  • Fixed pcntl_signal_dispatch() stale pointer and exception handling.
pcre
  • Fixed preg_match memory leak with invalid regexes.
  • Fixed pcre2_code leak when pcre2_pattern_info() fails after a successful pcre2_compile(), and match_sets/match_data/marks leaks in php_pcre_match_impl().
pdo_pgsql
  • Fixed bug GH-21055 (connection attribute status typo for GSS negotiation).
pgsql
  • Fixed bug GH-21162 (pg_connect() memory leak on error).
sockets
  • Fixed bug GH-21161 (socket_set_option() crash with array 'addr' entry as null).
  • Fixed possible addr length overflow with socket_connect() and AF_UNIX family sockets.
windows
  • Fixed compilation with clang (missing intrin.h include).
PHP 8.4.18
Released 12 Feb, 2026
core
  • Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()).
  • Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber).
  • Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization).
  • Fixed bug GH-GH-20914 (Internal enums can be cloned and compared).
  • Fix OSS-Fuzz #474613951 (Leaked parent property default value).
  • Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction).
  • Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value).
  • Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf).
  • Fixed bug GH-20905 (Lazy proxy bailing __clone assertion).
  • Fixed bug GH-20479 (Hooked object properties overflow).
date
  • Update timelib to 2022.16.
dom
  • Fixed GH-21041 (Dom\HTMLDocument corrupts closing tags within scripts).
mbstring
  • Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding).
  • Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references).
opcache
  • Fixed bug GH-20818 (Segfault in Tracing JIT with object reference).
openssl
  • Fix memory leaks when sk_X509_new_null() fails.
  • Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails.
  • Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails.
phar
  • Fixed bug GH-20882 (buildFromIterator breaks with missing base directory).
pgsql
  • Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB.
readline
  • Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()).
spl
  • Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration).
standard
  • Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS)
  • Fixed bug GH-20843 (var_dump() crash with nested objects)
PHP 8.4.17
Released 15 Jan, 2026
core
  • Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument).
  • Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()).
  • Fixed bug GH-20714 (Uncatchable exception thrown in generator).
  • Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation).
bz2
  • Fixed bug GH-20620 (bzcompress overflow on large source size).
dom
  • Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects).
  • Fixed bug GH-20444 (Dom\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()).
gd
  • Fixed bug GH-20622 (imagestring/imagestringup overflow).
intl
  • Fix leak in umsg_format_helper().
ldap
  • Fix memory leak in ldap_set_options().
mbstring
  • Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator).
openssl
  • Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options).
pcntl
  • Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling.
phar
  • Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails).
  • Fix SplFileInfo::openFile() in write mode.
  • Fix build on legacy OpenSSL 1.1.0 systems.
  • Fixed bug #74154 (Phar extractTo creates empty files).
posix
  • Fixed crash on posix groups to php array creation on macos.
spl
  • Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()).
sqlite3
  • Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned).
standard
  • Fix error check for proc_open() command.
  • Fix memory leak in mail() when header key is numeric.
  • Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed).
zlib
  • Fix OOB gzseek() causing assertion failure.
PHP 8.4.16
Released 18 Dec, 2025
core
  • Sync all boost.context files with release 1.86.0.
  • Fixed bug GH-20435 (SensitiveParameter doesn't work for named argument passing to variadic parameter).
  • Fixed bug GH-20286 (use-after-destroy during userland stream_close()).
bz2
  • Fix assertion failures resulting in crashes with stream filter object parameters.
date
  • Fix crashes when trying to instantiate uninstantiable classes via date static constructors.
dom
  • Fix memory leak when edge case is hit when registering xpath callback.
  • Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase).
  • Fix missing NUL byte check on C14NFile().
fibers
  • Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value).
ftp
  • Fixed bug GH-20601 (ftp_connect overflow on timeout).
gd
  • Fixed bug GH-20511 (imagegammacorrect out of range input/output values).
  • Fixed bug GH-20602 (imagescale overflow with large height values).
intl
  • Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants).
libxml
  • Fix some deprecations on newer libxml versions regarding input buffer/parser handling.
mbstring
  • Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma).
  • Fixed bug GH-20492 (mbstring compile warning due to non-strings).
mysqli
  • Make mysqli_begin_transaction() report errors properly.
mysqlnd
  • Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets).
opcache
  • Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer).
pdo
phar
  • Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub).
  • Fix broken return value of fflush() for phar file entries.
  • Fix assertion failure when fseeking a phar file out of bounds.
phpdbg
  • Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog().
spl
  • Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization).
standard
  • Fix memory leak in array_diff() with custom type checks.
  • Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures).
  • Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).
  • Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)
  • Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)
streams
  • Fixed bug GH-20370 (User stream filters could violate typed property constraints).
tidy
  • Fixed bug GH-20374 (PHP with tidy and custom-tags).
xml
  • Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback).
zip
  • Fix crash in property existence test.
  • Don't truncate return value of zip_fread() with user sizes.
zlib
  • Fix assertion failures resulting in crashes with stream filter object parameters.
PHP 8.4.15
Released 20 Nov, 2025
core
  • Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv).
  • Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference).
  • Fixed bug GH-20085 (Assertion failure when combining lazy object get_properties exception with foreach loop).
  • Fixed bug GH-19844 (Don't bail when closing resources on shutdown).
  • Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error).
  • Fixed bug GH-20270 (Broken parent hook call with named arguments).
  • Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval).
dom
  • Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work).
  • Fixed bug GH-20281 (\Dom\Document::getElementById() is inconsistent after nodes are removed).
exif
  • Fix possible memory leak when tag is empty.
fpm
  • Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution).
ftp
  • Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes).
gd
  • Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided).
intl
  • Fix memory leak on error in locale_filter_matches().
libxml
  • Fix not thread safe schema/relaxng calls.
mysqlnd
  • Fixed bug GH-8978 (SSL certificate verification fails (port doubled)).
  • Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL).
opcache
  • Fixed bug GH-20081 (access to uninitialized vars in preload_load()).
  • Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15).
  • Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess).
  • Fixed bug GH-20012 (heap buffer overflow in jit).
  • Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments).
pgsql
  • Fix memory leak when first string conversion fails.
  • Fix segfaults when attempting to fetch row into a non-instantiable class name.
phar
  • Fix memory leak of argument in webPhar.
  • Fix memory leak when setAlias() fails.
  • Fix a bunch of memory leaks in phar_parse_zipfile() error handling.
  • Fix file descriptor/memory leak when opening central fp fails.
  • Fix memleak+UAF when opening temp stream in buildFromDirectory() fails.
  • Fix potential buffer length truncation due to usage of type int instead of type size_t.
  • Fix memory leak when openssl polyfill returns garbage.
  • Fix file descriptor leak in phar_zip_flush() on failure.
  • Fix memory leak when opening temp file fails while trying to open gzip-compressed archive.
  • Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects).
random
  • Fix Randomizer::__serialize() w.r.t. INDIRECTs.
reflection
  • Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks).
simplexml
  • Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work).
streams
  • Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64.
tidy
  • Fixed GH-19021 (improved tidyOptGetCategory detection).
  • Fix UAF in tidy when tidySetErrorBuffer() fails.
xmlreader
  • Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available.
windows
  • Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket).
PHP 8.4.14
Released 23 Oct, 2025
core
  • Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks).
  • Fixed hard_timeout with --enable-zend-max-execution-timers.
  • Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered).
  • Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash).
  • Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array).
  • Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured).
  • Fixed bug GH-20002 (Broken build on *BSD with MSAN).
cli
  • Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS.
curl
  • Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle.
  • Fix curl build and test failures with version 8.16.
date
  • Fixed GH-17159: "P" format for ::createFromFormat swallows string literals.
dom
  • Fix macro name clash on macOS.
  • Fixed bug GH-20022 (docker-php-ext-install DOM failed).
gd
  • Fixed GH-19955 (imagefttext() memory leak).
mysqlnd
  • Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter).
opcache
  • Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex).
  • Fixed bug GH-19831 (function JIT may not deref property value).
  • Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()).
phar
  • Fix memory leak and invalid continuation after tar header writing fails.
  • Fix memory leaks when creating temp file fails when applying zip signature.
simplexml
  • Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)).
soap
  • Fixed bug GH-19784 (SoapServer memory leak).
  • Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash).
standard
  • Fixed bug GH-12265 (Cloning an object breaks serialization recursion).
  • Fixed bug GH-19701 (Serialize/deserialize loses some data).
  • Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()).
  • Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort).
  • Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set).
  • Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null).
streams
  • Fixed bug GH-19248 (Use strerror_r instead of strerror in main).
  • Fixed bug GH-17345 (Bug #35916 was not completely fixed).
  • Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream.
xmlreader
  • Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure).
zip
  • Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()).
  • Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()).
PHP 8.4.13
Released 25 Sep, 2025
core
  • Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning).
  • Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow).
  • Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references).
  • Fixed bug GH-19613 (Stale array iterator pointer).
  • Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge).
  • Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0).
  • Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant).
cli
  • Fixed bug GH-19461 (Improve error message on listening error with IPv6 address).
date
  • Fixed date_sunrise() and date_sunset() with partial-hour UTC offset.
dba
  • Fixed bug GH-19706 (dba stream resource mismanagement).
dom
  • Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug).
fpm
  • Fixed failed debug assertion when php_admin_value setting fails.
intl
  • Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter).
opcache
  • Fixed bug GH-19493 (JIT variable not stored before YIELD).
openssl
  • Fixed bug GH-19245 (Success error message on TLS stream accept failure).
pgsql
  • Fixed bug GH-19485 (potential use after free when using persistent pgsql connections).
phar
  • Fixed memory leaks when verifying OpenSSL signature.
  • Fix memory leak in phar tar temporary file error handling code.
  • Fix metadata leak when phar convert logic fails.
  • Fix memory leak on failure in phar_convert_to_other().
  • Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF).
standard
  • Fixed bug GH-16649 (UAF during array_splice).
  • Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator).
streams
  • Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata().
  • Fix OSS-Fuzz #385993744.
zip
  • Fix memory leak in zip when encountering empty glob result.
PHP 8.4.12
Released 28 Aug, 2025
core
  • Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro.
  • Fixed bug GH-19053 (Duplicate property slot with hooks and interface property).
  • Fixed bug GH-19044 (Protected properties are not scoped according to their prototype).
  • Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking).
  • Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr).
  • Fixed bug GH-19305 (Operands may be being released during comparison).
  • Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure).
  • Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator).
  • Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes).
  • Fixed bug GH-19280 (Stale array iterator position on rehashing).
  • Fixed bug GH-18736 (Circumvented type check with return by ref + finally).
  • Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming).
calendar
  • Fixed bug GH-19371 (integer overflow in calendar.c).
ftp
  • Fix theoretical issues with hrtime() not being available.
gd
  • Fix incorrect comparison with result of php_stream_can_cast().
hash
  • Fix crash on clone failure.
intl
  • Fix memleak on failure in collator_get_sort_key().
  • Fix return value on failure for resourcebundle count handler.
ldap
  • Fixed bug GH-18529 (additional inheriting of TLS int options).
libxml
  • Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free).
mbstring
  • Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown).
opcache
  • Reset global pointers to prevent use-after-free in zend_jit_status().
  • Fix issue with JIT restart and hooks.
  • Fix crash with dynamic function defs in hooks during preload.
openssl
  • Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check).
  • Fix error return check of EVP_CIPHER_CTX_ctrl().
  • Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param).
pdo pgsql
  • Fixed dangling pointer access on _pdo_pgsql_trim_message helper.
soap
  • Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref).
sockets
  • Fix some potential crashes on incorrect argument value.
standard
  • Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache).
  • Fix theoretical issues with hrtime() not being available.
  • Fixed bug GH-19300 (Nested array_multisort invocation with error breaks).
windows
  • Free opened_path when opened_path_len >= MAXPATHLEN.
PHP 8.4.11
Released 31 Jul, 2025
calendar
  • Fixed jewishtojd overflow on year argument.
core
  • Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order).
  • Fixed bug GH-18907 (Leak when creating cycle in hook).
  • Fix OSS-Fuzz #427814456.
  • Fix OSS-Fuzz #428983568 and #428760800.
curl
  • Fix memory leaks when returning refcounted value from curl callback.
  • Remove incorrect string release.
dom
  • Fixed bug GH-18979 (Dom\XMLDocument::createComment() triggers undefined behavior with null byte).
ldap
  • Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID.
mbstring
  • Fixed bug GH-18901 (integer overflow mb_split).
opcache
  • Fixed bug GH-18639 (Internal class aliases can break preloading + JIT).
  • Fixed bug GH-18899 (JIT function crash when emitting undefined variable warning and opline is not set yet).
  • Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c).
  • Fixed bug GH-18898 (SEGV zend_jit_op_array_hot with property hooks and preloading).
openssl
  • Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server).
pcntl
  • Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers).
phar
  • Fix stream double free in phar.
  • Fix phar crash and file corruption with SplFileObject.
soap
  • Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction).
  • Fix memory leak when URL parsing fails in redirect.
spl
  • Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash).
standard
  • Fix misleading errors in printf().
  • Fix RCN violations in array functions.
  • Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value.
streams
  • Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error).
zip
  • Fix leak when path is too long in ZipArchive::extractTo().
PHP 8.4.10
Released 03 Jul, 2025
bcmath
  • Fixed bug GH-18641 (Accessing a BcMath\Number property by ref crashes).
core
  • Fixed bugs GH-17711 and GH-18022 (Infinite recursion on deprecated attribute evaluation) and GH-18464 (Recursion protection for deprecation constants not released on bailout).
  • Fixed GH-18695 (zend_ast_export() - float number is not preserved).
  • Fix handling of references in zval_try_get_long().
  • Do not delete main chunk in zend_gc.
  • Fix compile issues with zend_alloc and some non-default options.
curl
  • Fix memory leak when setting a list via curl_setopt fails.
date
  • Fix leaks with multiple calls to DatePeriod iterator current().
dom
  • Fixed bug GH-18744 (classList works not correctly if copy HTMLElement by clone keyword).
fpm
  • Fixed GH-18662 (fpm_get_status segfault).
hash
  • Fixed bug GH-14551 (PGO build fails with xxhash).
intl
  • Fix memory leak in intl_datetime_decompose() on failure.
  • Fix memory leak in locale lookup on failure.
opcache
  • Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22).
odbc
  • Fix memory leak on php_odbc_fetch_hash() failure.
openssl
  • Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure.
  • Fixed bug #74796 (Requests through http proxy set peer name).
pdo odbc
  • Fix memory leak if WideCharToMultiByte() fails.
pdo sqlite
  • Fixed memory leak with Pdo_Sqlite::createCollation when the callback has an incorrect return type.
phar
  • Add missing filter cleanups on phar failure.
  • Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek).
phpdbg
  • Fix 'phpdbg --help' segfault on shutdown with USE_ZEND_ALLOC=0.
pgsql
  • Fix warning not being emitted when failure to cancel a query with pg_cancel_query().
random
  • Fix reference type confusion and leak in user random engine.
readline
  • Fix memory leak when calloc() fails in php_readline_completion_cb().
simplexml
  • Fixed bug GH-18597 (Heap-buffer-overflow in zend_alloc.c when assigning string with UTF-8 bytes).
soap
  • Fix memory leaks in php_http.c when call_user_function() fails.
tidy
  • Fix memory leak in tidy output handler on error.
  • Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory.
PHP 8.4.8
Released 05 Jun, 2025
core
  • Fixed GH-18480 (array_splice with large values for offset/length arguments).
  • Partially fixed GH-18572 (nested object comparisons leading to stack overflow).
  • Fixed OSS-Fuzz #417078295.
  • Fixed OSS-Fuzz #418106144.
curl
  • Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL).
date
  • Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) .
  • Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset).
dom
  • Backport lexbor/lexbor#274.
intl
  • Fix various reference issues.
ldap
  • Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()).
opcache
  • Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size).
  • Fixed bug GH-18297 (Exception not handled when jit guard is triggered).
  • Fixed bug GH-18408 (Snapshotted poly_func / poly_this may be spilled).
  • Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure).
  • Fixed bug GH-18534 (FPM exit code 70 with enabled opcache and hooked properties in traits).
  • Fix leak of accel_globals->key.
openssl
  • Fix missing checks against php_set_blocking() in xp_ssl.c.
spl
  • Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator).
standard
  • Fixed bug GH-17403 (Potential deadlock when putenv fails).
  • Fixed bug GH-18400 (http_build_query type error is inaccurate).
  • Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions).
windows
  • Fix leak+crash with sapi_windows_set_ctrl_handler().
zip
  • Fixed bug GH-18431 (Registering ZIP progress callback twice doesn't work).
  • Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern).
PHP 8.4.7
Released 08 May, 2025
core
  • Fixed bug GH-18038 (Lazy proxy calls magic methods twice).
  • Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS).
  • Fixed bug GH-18268 (Segfault in array_walk() on object with added property hooks).
  • Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault).
  • Fix some leaks in php_scandir.
dba
  • FIxed bug GH-18247 dba_popen() memory leak on invalid path.
filter
  • Fixed bug GH-18309 (ipv6 filter integer overflow).
gd
  • Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop().
  • Fixed GH-18243 imagettftext() overflow/underflow on font size value.
intl
  • Fix reference support for intltz_get_offset().
ldap
  • Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can't be overridden).
  • Fix NULL deref on high modification key.
libxml
  • Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message.
opcache
  • Fixed bug GH-18294 (assertion failure zend_jit_ir.c).
  • Fixed bug GH-18289 (Fix segfault in JIT).
  • Fixed bug GH-18136 (tracing JIT floating point register clobbering on Windows and ARM64).
openssl
  • Fix memory leak in openssl_sign() when passing invalid algorithm.
  • Fix potential leaks when writing to BIO fails.
pdo firebird
  • Fixed bug GH-18276 (persistent connection - "zend_mm_heap corrupted" with setAttribute()) .
  • Fixed bug GH-17383 (PDOException has wrong code and message since PHP 8.4) .
pdo sqlite
  • Fix memory leak on error return of collation callback.
pgsql
  • Fix uouv in pg_put_copy_end().
spl
  • Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory).
standard
  • Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()).
  • Fix resource leak in iptcembed() on error.
tests
  • Address deprecated PHP 8.4 session options to prevent test failures.
zip
  • Fix uouv when handling empty options in ZipArchive::addGlob().
  • Fix memory leak when handling a too long path in ZipArchive::addGlob().
PHP 8.4.6
Released 10 Apr, 2025
bcmath
  • Fixed pointer subtraction for scale.
core
  • Fixed property hook backing value access in multi-level inheritance.
  • Fixed accidentally inherited default value in overridden virtual properties.
  • Fixed bug GH-17376 (Broken JIT polymorphism for property hooks added to child class).
  • Fixed bug GH-17913 (ReflectionFunction::isDeprecated() returns incorrect results for closures created from magic __call()).
  • Fixed bug GH-17941 (Stack-use-after-return with lazy objects and hooks).
  • Fixed bug GH-17988 (Incorrect handling of hooked props without get hook in get_object_vars()).
  • Fixed bug GH-17998 (Skipped lazy object initialization on primed SIMPLE_WRITE cache).
  • Fixed bug GH-17998 (Assignment to backing value in set hook of lazy proxy calls hook again).
  • Fixed bug GH-17961 (use-after-free during dl()'ed module class destruction).
  • Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown).
  • Fixed OSS-Fuzz #403308724.
  • Fixed bug GH-13193 again (Significant performance degradation in 'foreach').
dba
  • Fixed assertion violation when opening the same file with dba_open multiple times.
dom
  • Fixed bug GH-17991 (Assertion failure dom_attr_value_write).
  • Fix weird unpack behaviour in DOM.
  • Fixed bug GH-18090 (DOM: Svg attributes and tag names are being lowercased).
  • Fix xinclude destruction of live attributes.
fuzzer
  • Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI).
gd
  • Fixed bug GH-17984 (calls with arguments as array with references).
ldap
  • Fixed bug GH-18015 (Error messages for ldap_mod_replace are confusing).
mbstring
  • Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes).
opcache
  • Fixed bug GH-15834 (Segfault with hook "simple get" cache slot and minimal JIT).
  • Fixed bug GH-17966 (Symfony JIT 1205 assertion failure).
  • Fixed bug GH-18037 (SEGV Zend/zend_execute.c).
  • Fixed bug GH-18050 (IN_ARRAY optimization in DFA pass is broken).
  • Fixed bug GH-18113 (stack-buffer-overflow ext/opcache/jit/ir/ir_sccp.c).
  • Fixed bug GH-18112 (NULL access with preloading and INI option).
  • Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table).
pdo
  • Fix memory leak when destroying PDORow.
pgsql
  • Fixed bug GH-18148 (pg_copy_from() regression with explicit \n terminator due to wrong offset check).
standard
  • Fix memory leaks in array_any() / array_all().
soap
  • Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) .
spl
  • Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject).
treewide
  • Fixed bug GH-17736 (Assertion failure zend_reference_destroy()).
windows
  • Fixed bug GH-17836 (zend_vm_gen.php shouldn't break on Windows line endings).
PHP 8.4.5
Released 13 Mar, 2025
bcmath
  • Fixed bug GH-17398 (bcmul memory leak).
core
  • Fixed bug GH-17623 (Broken stack overflow detection for variable compilation).
  • Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account).
  • Fix fallback paths in fast_long_{add,sub}_function.
  • Fixed bug OSS-Fuzz #391975641 (Crash when accessing property backing value by reference).
  • Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed).
  • Fixed bug GH-17713 (ReflectionProperty::getRawValue() and related methods may call hooks of overridden properties).
  • Fixed bug GH-17916 (Final abstract properties should error).
  • Fixed bug GH-17866 (zend_mm_heap corrupted error after upgrading from 8.4.3 to 8.4.4).
  • Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235)
dom
  • Fixed bug GH-17609 (Typo in error message: Dom\NO_DEFAULT_NS instead of Dom\HTML_NO_DEFAULT_NS).
  • Fixed bug GH-17802 (\Dom\HTMLDocument querySelector attribute name is case sensitive in HTML).
  • Fixed bug GH-17847 (xinclude destroys live node).
  • Fix using Dom\Node with Dom\XPath callbacks.
ffi
  • Fix FFI Parsing of Pointer Declaration Lists.
fpm
  • Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env).
gd
  • Fixed bug GH-17703 (imagescale with both width and height negative values triggers only an Exception on width).
  • Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M).
ldap
  • Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys).
libxml
mbstring
  • Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables).
opcache
  • Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash).
  • Fixed bug GH-17577 (JIT packed type guard crash).
  • Fixed bug GH-17747 (Exception on reading property in register-based FETCH_OBJ_R breaks JIT).
  • Fixed bug GH-17715 (Null pointer deref in observer API when calling cases() method on preloaded enum).
  • Fixed bug GH-17868 (Cannot allocate memory with tracing JIT on 8.4.4).
pdo_sqlite
  • Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults).
  • Fix cycle leak in sqlite3 setAuthorizer().
  • Fix memory leaks in pdo_sqlite callback registration.
phar
  • Fixed bug GH-17808: PharFileInfo refcount bug.
phpdbg
  • Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer).
  • Fix memory leak in phpdbg calling registered function.
reflection
  • Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c).
  • Fixed missing final and abstract flags when dumping properties.
standard
  • Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths).
streams
  • Fixed bug GH-17650 (realloc with size 0 in user_filters.c).
  • Fix memory leak on overflow in _php_stream_scandir().
  • Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736)
  • Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861)
  • Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734)
  • Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217)
windows
  • Fixed phpize for Windows 11 (24H2).
  • Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib).
zlib
  • Fixed bug GH-17745 (zlib extension incorrectly handles object arguments).
  • Fix memory leak when encoding check fails.
  • Fix zlib support for large files.
PHP 8.4.4
Released 13 Feb, 2025
core
  • Fixed bug GH-17234 (Numeric parent hook call fails with assertion).
  • Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b).
  • Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0).
  • Fixed bug GH-17222 (__PROPERTY__ magic constant does not work in all constant expression contexts).
  • Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final).
  • Fixed NULL arithmetic during system program execution on Windows.
  • Fixed potential OOB when checking for trailing spaces on Windows.
  • Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c).
  • Fix may_have_extra_named_args flag for ZEND_AST_UNPACK.
  • Fix NULL arithmetic in System V shared memory emulation for Windows.
  • Fixed bug GH-17597 (#[\Deprecated] does not work for __call() and __callStatic()).
dom
  • Fixed bug GH-17397 (Assertion failure ext/dom/php_dom.c).
  • Fixed bug GH-17486 (Incorrect error line numbers reported in Dom\HTMLDocument::createFromString).
  • Fixed bug GH-17481 (UTF-8 corruption in \Dom\HTMLDocument).
  • Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype).
  • Fixed bug GH-17485 (upstream fix, Self-closing tag on void elements shouldn't be a parse error/warning in \Dom\HTMLDocument).
  • Fixed bug GH-17572 (getElementsByTagName returns collections with tagName-based indexing).
enchant
  • Fix crashes in enchant when passing null bytes.
ftp
  • Fixed bug GH-16800 (ftp functions can abort with EINTR).
gd
  • Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency).
  • Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images).
  • Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate).
  • Added support for reading GIFs without colormap to bundled libgd.
gettext
  • Fixed bug GH-17400 (bindtextdomain SEGV on invalid domain).
intl
  • Fixed bug GH-11874 (intl causing segfault in docker images).
opcache
  • Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT).
  • Fixed bug GH-17307 (Internal closure causes JIT failure).
  • Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940).
  • Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding).
pcntl
  • Fixed pcntl_setcpuaffinity exception type from ValueError to TypeError for the cpu mask argument with entries type different than int/string.
pcre
  • Fixed bug GH-17122 (memory leak in regex).
pdo
  • Fixed a memory leak when the GC is used to free a PDOStatment.
  • Fixed a crash in the PDO Firebird Statement destructor.
  • Fixed UAFs when changing default fetch class ctor args.
pgsql
  • Fixed build failure when the constant PGRES_TUPLES_CHUNK is not present in the system.
phar
  • Fixed bug GH-17518 (offset overflow phar extractTo()).
phpdbg
  • Fix crashes in function registration + test.
session
  • Fix type confusion with session SID constant.
  • Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset).
simplexml
  • Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730).
snmp
  • Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session).
spl
  • Fixed bug GH-15833 (Segmentation fault (access null pointer) in ext/spl/spl_array.c).
  • Fixed bug GH-17516 (SplFileTempObject::getPathInfo() Undefined behavior on invalid class).
standard
  • Fixed bug GH-17447 (Assertion failure when array popping a self addressing variable).
windows
  • Fixed clang compiler detection.
zip
  • Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry).
PHP 8.4.3
Released 16 Jan, 2025
bcmath
  • Fixed bug GH-17049 (Correctly compare 0 and -0).
  • Fixed bug GH-17061 (Now Number::round() does not remove trailing zeros).
  • Fixed bug GH-17064 (Correctly round rounding mode with zero edge case).
  • Fixed bug GH-17275 (Fixed the calculation logic of dividend scale).
core
  • Fixed bug OSS-Fuzz #382922236 (Duplicate dynamic properties in hooked object iterator properties table).
  • Fixed unstable get_iterator pointer for hooked classes in shm on Windows.
  • Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization).
  • Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF).
  • Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly).
  • Fixed bug GH-17200 (Incorrect dynamic prop offset in hooked prop iterator).
  • Fixed bug GH-17216 (Trampoline crash on error).
dba
  • Skip test if inifile is disabled.
dom
  • Fixed bug GH-17145 (DOM memory leak).
  • Fixed bug GH-17201 (Dom\TokenList issues with interned string replace).
  • Fixed bug GH-17224 (UAF in importNode).
embed
  • Make build command for program using embed portable.
ffi
  • Fixed bug #79075 (FFI header parser chokes on comments).
  • Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure.
  • Fixed bug GH-16013 and bug #80857 (Big endian issues).
fileinfo
  • Fixed bug GH-17039 (PHP 8.4: Incorrect MIME content type).
fpm
  • Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)).
  • Fixed bug GH-17112 (Macro redefinitions).
  • Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits).
gd
  • Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c).
  • Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs).
gettext
  • Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()).
iconv
  • Fixed bug GH-17047 (UAF on iconv filter failure).
ldap
  • Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes).
libxml
  • Fixed bug GH-17223 (Memory leak in libxml encoding handling).
mbstring
  • Fixed bug GH-17112 (Macro redefinitions).
opcache
  • opcache_get_configuration() properly reports jit_prof_threshold.
  • Fixed bug GH-17140 (Assertion failure in JIT trace exit with ZEND_FETCH_DIM_FUNC_ARG).
  • Fixed bug GH-17151 (Incorrect RC inference of op1 of FETCH_OBJ and INIT_METHOD_CALL).
  • Fixed bug GH-17246 (GC during SCCP causes segfault).
  • Fixed bug GH-17257 (UBSAN warning in ext/opcache/jit/zend_jit_vm_helpers.c).
pcntl
  • Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry.
pgsql
  • Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument).
  • Fixed further ArgumentCountError for calls with flexible number of arguments.
phar
  • Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c).
simplexml
  • Fixed bug GH-17040 (SimpleXML's unset can break DOM objects).
  • Fixed bug GH-17153 (SimpleXML crash when using autovivification on document).
sockets
  • Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN).
  • Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option().
spl
  • Fixed bug GH-17198 (SplFixedArray assertion failure with get_object_vars).
  • Fixed bug GH-17225 (NULL deref in spl_directory.c).
streams
  • Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling).
  • Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value).
  • Fixed bug GH-17067 (glob:// wrapper doesn't cater to CWD for ZTS builds).
windows
  • Hardened proc_open() against cmd.exe hijacking.
xml
  • Fixed bug GH-1718 (unreachable program point in zend_hash).
PHP 8.4.2
Released 19 Dec, 2024
bcmath
  • Fixed bug GH-16978 (Avoid unnecessary padding with leading zeros).
com
  • Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).
core
  • Fixed bug GH-16344 (setRawValueWithoutLazyInitialization() and skipLazyInitialization() may change initialized proxy).
  • Fix is_zend_ptr() huge block comparison.
  • Fixed potential OOB read in zend_dirname() on Windows.
  • Fixed bug GH-15964 (printf() can strip sign of -INF).
curl
  • Fix various memory leaks in curl mime handling.
dba
  • Fixed bug GH-16990 (dba_list() is now zero-indexed instead of using resource ids)
dom
  • Fixed bug GH-16906 (Reloading document can cause UAF in iterator).
fpm
  • Fixed bug GH-16932 (wrong FPM status output).
gmp
  • Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)).
opcache
  • Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).
  • Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64).
  • Fixed bug GH-16879 (JIT dead code skipping does not update call_level).
sapi
  • Fixed bug GH-16998 (UBSAN warning in rfc1867).
phpdbg
  • Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).
standard
  • Fixed bug GH-16905 (Internal iterator functions can't handle UNDEF properties).
  • Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array).
streams
  • Fixed network connect poll interuption handling.
windows
  • Fixed bug GH-16849 (Error dialog causes process to hang).
  • Windows Server 2025 is now properly reported.
PHP 8.4.1
Released 21 Nov, 2024
bcmath
  • [RFC] Add bcfloor, bcceil and bcround to BCMath.
  • Improve performance.
  • Adjust bcround()'s $mode parameter to only accept the RoundingMode enum.
  • Fixed LONG_MAX in BCMath ext.
  • Fixed bcdiv() div by one.
  • [RFC] Support object types in BCMath.
  • bcpow() performance improvement.
  • ext/bcmath: Check for scale overflow.
  • [RFC] ext/bcmath: Added bcdivmod.
  • Fix GH-15968 (Avoid converting objects to strings in operator calculations).
  • Fixed bug GH-16265 (Added early return case when result is 0) .
  • Fixed bug GH-16262 (Fixed a bug where size_t underflows) .
  • Fixed GH-16236 (Fixed a bug in BcMath\Number::pow() and bcpow() when raising negative powers of 0) .
core
  • Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD, Solaris and Haiku.
  • Enabled ifunc checks on FreeBSD from the 12.x releases.
  • Changed the type of PHP_DEBUG and PHP_ZTS constants to bool.
  • Fixed bug GH-13142 (Undefined variable name is shortened when contains \0).
  • Fixed bug GH-13178 (Iterator positions incorrect when converting packed array to hashed).
  • Fixed zend fiber build for solaris default mode (32 bits).
  • Fixed zend call stack size for macOs/arm64.
  • Added support for Zend Max Execution Timers on FreeBSD.
  • Ensure fiber stack is not backed by THP.
  • Implement GH-13609 (Dump wrapped object in WeakReference class).
  • Added sparc64 arch assembly support for zend fiber.
  • Fixed GH-13581 no space available for TLS on NetBSD.
  • Added fiber Sys-V loongarch64 support.
  • Adjusted closure names to include the parent function's name.
  • Improve randomness of uploaded file names and files created by tempnam().
  • Added gc and shutdown callbacks to zend_mm custom handlers.
  • Fixed bug GH-14650 (Compute the size of pages before allocating memory).
  • Fixed bug GH-11928 (The --enable-re2c-cgoto doesn't add the -g flag).
  • Added the #[\Deprecated] attribute.
  • Fixed GH-11389 (Allow suspending fibers in destructors).
  • Fixed bug GH-14801 (Fix build for armv7).
  • Implemented property hooks RFC.
  • Fix GH-14978 (The xmlreader extension phpize build).
  • Throw Error exception when encountering recursion during comparison, rather than fatal error.
  • Added missing cstddef include for C++ builds.
  • Updated build system scripts config.guess to 2024-07-27 and config.sub to 2024-05-27.
  • Fixed bug GH-15240 (Infinite recursion in trait hook).
  • Fixed bug GH-15140 (Missing variance check for abstract set with asymmetric type).
  • Fixed bug GH-15181 (Disabled output handler is flushed again).
  • Passing E_USER_ERROR to trigger_error() is now deprecated.
  • Fixed bug GH-15292 (Dynamic AVX detection is broken for MSVC).
  • Using "_" as a class name is now deprecated.
  • Exiting a namespace now clears seen symbols.
  • The exit (and die) language constructs now behave more like a function. They can be passed liked callables, are affected by the strict_types declare statement, and now perform the usual type coercions instead of casting any non-integer value to a string. As such, passing invalid types to exit/die may now result in a TypeError being thrown.
  • Fixed bug GH-15438 (Hooks on constructor promoted properties without visibility are ignored).
  • Fixed bug GH-15419 (Missing readonly+hook incompatibility check for readonly classes).
  • Fixed bug GH-15187 (Various hooked object iterator issues).
  • Fixed bug GH-15456 (Crash in get_class_vars() on virtual properties).
  • Fixed bug GH-15501 (Windows HAVE_<header>_H macros defined to 1 or undefined).
  • Implemented asymmetric visibility for properties.
  • Fixed bug GH-15644 (Asymmetric visibility doesn't work with hooks).
  • Implemented lazy objects RFC.
  • Fixed bug GH-15686 (Building shared iconv with external iconv library).
  • Fixed missing error when adding asymmetric visibility to unilateral virtual property.
  • Fixed bug GH-15693 (Unnecessary include in main.c bloats binary).
  • Fixed bug GH-15731 (AllowDynamicProperties validation should error on enums).
  • Fixed bug GH-16040 (Use-after-free of object released in hook).
  • Fixed bug GH-16026 (Reuse of dtor fiber during shutdown).
  • Fixed bug GH-15999 (zend_std_write_property() assertion failure with lazy objects).
  • Fixed bug GH-15960 (Foreach edge cases with lazy objects).
  • Fixed bug GH-16185 (Various hooked object iterator issues).
  • Fixed bug OSS-Fuzz #371445205 (Heap-use-after-free in attr_free).
  • Fixed missing error when adding asymmetric visibility to static properties.
  • Fixed bug OSS-Fuzz #71407 (Null-dereference WRITE in zend_lazy_object_clone).
  • 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-16725 (Incorrect access check for non-hooked props in hooked object iterator).
curl
  • Deprecated the CURLOPT_BINARYTRANSFER constant.
  • Bumped required libcurl version to 7.61.0.
  • Added feature_list key to the curl_version() return value.
  • Added constants CURL_HTTP_VERSION_3 (libcurl 7.66) and CURL_HTTP_VERSION_3ONLY (libcurl 7.88) as options for CURLOPT_HTTP_VERSION
  • Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before dropping the connection.
  • Added CURLOPT_PREREQFUNCTION Curl option to set a custom callback after the connection is established, but before the request is performed.
  • Added CURLOPT_SERVER_RESPONSE_TIMEOUT, which was formerly known as CURLOPT_FTP_RESPONSE_TIMEOUT.
  • The CURLOPT_DNS_USE_GLOBAL_CACHE option is now silently ignored.
  • Added CURLOPT_DEBUGFUNCTION as a Curl option.
  • Fixed bug GH-16359 (crash with curl_setopt* CURLOPT_WRITEFUNCTION without null callback).
  • Fixed bug GH-16723 (CURLMOPT_PUSHFUNCTION issues).
date
  • Added DateTime[Immutable]::createFromTimestamp.
  • Added DateTime[Immutable]::[get|set]Microsecond.
  • Constants SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, and SUNFUNCS_RET_DOUBLE are now deprecated.
  • Fixed bug GH-13773 (DatePeriod not taking into account microseconds for end date).
dba
  • Passing null or false to dba_key_split() is deprecated.
debugging
  • Fixed bug GH-15923 (GDB: Python Exception <class 'TypeError'>: exceptions must derive from BaseException).
dom
  • Added DOMNode::compareDocumentPosition().
  • Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents).
  • Fix cloning attribute with namespace disappearing namespace.
  • Implement DOM HTML5 parsing and serialization RFC.
  • Fix DOMElement->prefix with empty string creates bogus prefix.
  • Handle OOM more consistently.
  • Implemented "Improve callbacks in ext/dom and ext/xsl" RFC.
  • Added DOMXPath::quote() static method.
  • Implemented opt-in ext/dom spec compliance RFC.
  • Fixed bug #79701 (getElementById does not correctly work with duplicate definitions).
  • Implemented "New ext-dom features in PHP 8.4" RFC.
  • Fixed GH-14698 (segfault on DOM node dereference).
  • Improve support for template elements.
  • Fix trampoline leak in xpath callables.
  • Throw instead of silently failing when creating a too long text node in (DOM)ParentNode and (DOM)ChildNode.
  • Fixed bug GH-15192 (Segmentation fault in dom extension (html5_serializer)).
  • Deprecated DOM_PHP_ERR constant.
  • Removed DOMImplementation::getFeature().
  • Fixed bug GH-15331 (Element::$substitutedNodeValue test failed).
  • Fixed bug GH-15570 (Segmentation fault (access null pointer) in ext/dom/html5_serializer.c).
  • Fixed bug GH-13988 (Storing DOMElement consume 4 times more memory in PHP 8.1 than in PHP 8.0).
  • Fix XML serializer errata: xmlns="" serialization should be allowed.
  • Fixed bug GH-15910 (Assertion failure in ext/dom/element.c).
  • Fix unsetting DOM properties.
  • Fixed bug GH-16190 (Using reflection to call Dom\Node::__construct causes assertion failure).
  • Fix edge-case in DOM parsing decoding.
  • Fixed bug GH-16465 (Heap buffer overflow in DOMNode->getElementByTagName).
  • Fixed bug GH-16594 (Assertion failure in DOM -> before).
fileinfo
  • Update to libmagic 5.45.
  • Fixed bug #65106 (PHP fails to compile ext/fileinfo).
fpm
  • Implement GH-12385 (flush headers without body when calling flush()).
  • Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT to SOMAXCONN.
  • /dev/poll events.mechanism for Solaris/Illumos setting had been retired.
  • Added memory peak to the scoreboard / status page.
ftp
  • Removed the deprecated inet_ntoa call support.
  • Fixed bug #63937 (Upload speed 10 times slower with PHP).
gd
  • Fix parameter numbers and missing alpha check for imagecolorset().
  • imagepng/imagejpeg/imagewep/imageavif now throw an exception on invalid quality parameter.
  • Check overflow/underflow for imagescale/imagefilter.
  • Added gdImageClone to bundled libgd.
gettext
  • bind_textdomain_codeset, textdomain and d(*)gettext functions now throw an exception on empty domain.
gmp
  • The GMP class is now final and cannot be extended anymore.
  • RFC: Change GMP bool cast behavior.
hash
  • Changed return type of hash_update() to true.
  • Added HashContext::__debugInfo().
  • Deprecated passing incorrect data types for options to ext/hash functions.
  • Added SSE2 and SHA-NI implementation of SHA-256.
  • Fix GH-15384 (Build fails on Alpine / Musl for amd64).
  • Fixed bug GH-15742 (php_hash_sha.h incompatible with C++).
imap
  • Moved to PECL.
intl
  • Added IntlDateFormatter::PATTERN constant.
  • Fixed Numberformatter::__construct when the locale is invalid, now throws an exception.
  • Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as aliases for ::ROUND_DOWN and ::ROUND_UP.
  • Added NumberFormatter::ROUND_HALFODD.
  • Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and PROPERTY_ID_COMPAT_MATH_CONTINUE constants.
  • Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function.
  • Set to C++17 standard for icu 74 and onwards.
  • resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a ResourceBundle object now throw:
  • TypeError for invalid offset types
  • ValueError for an empty string
  • ValueError if the integer index does not fit in a signed 32 bit integer
  • ResourceBundle::get() now has a tentative return type of: ResourceBundle|array|string|int|null
  • Added the new Grapheme function grapheme_str_split.
  • Added IntlDateFormatter::parseToCalendar.
  • Added SpoofChecker::setAllowedChars to set unicode chars ranges.
ldap
  • Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 constants.
libxml
  • Added LIBXML_RECOVER constant.
  • libxml_set_streams_context() now throws immediately on an invalid context instead of at the use-site.
  • Added LIBXML_NO_XXE constant.
mbstring
  • Added mb_trim, mb_ltrim and mb_rtrim.
  • Added mb_ucfirst and mb_lcfirst.
  • Updated Unicode data tables to Unicode 15.1.
  • Fixed bug GH-15824 (mb_detect_encoding(): Argument $encodings contains invalid encoding "UTF8").
  • Updated Unicode data tables to Unicode 16.0.
mysqli
  • The mysqli_ping() function and mysqli::ping() method are now deprecated, as the reconnect feature was removed in PHP 8.2.
  • The mysqli_kill() function and mysqli::kill() method are now deprecated. If this functionality is needed a SQL "KILL" command can be used instead.
  • The mysqli_refresh() function and mysqli::refresh() method are now deprecated. If this functionality is needed a SQL "FLUSH" command can be used instead.
  • Passing explicitly the $mode parameter to mysqli_store_result() has been deprecated. As the MYSQLI_STORE_RESULT_COPY_DATA constant was only used in conjunction with this function it has also been deprecated.
mysqlnd
  • Fixed bug GH-13440 (PDO quote bottleneck).
  • Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection).
opcache
  • Added large shared segments support for FreeBSD.
  • If JIT is enabled, PHP will now exit with a fatal error on startup in case of JIT startup initialization issues.
  • Increased the maximum value of opcache.interned_strings_buffer to 32767 on 64bit archs.
  • Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in zend_jit.c).
  • Fixed bug GH-14361 (Deep recursion in zend_cfg.c causes segfault).
  • Fixed bug GH-14873 (PHP 8.4 min function fails on typed integer).
  • Fixed bug GH-15490 (Building of callgraph modifies preloaded symbols).
  • Fixed bug GH-15178 (Assertion in tracing JIT on hooks).
  • Fixed bug GH-15657 (Segmentation fault in dasm_x86.h).
  • Added opcache_jit_blacklist() function.
  • Fixed bug GH-16009 (Segmentation fault with frameless functions and undefined CVs).
  • Fixed bug GH-16186 (Assertion failure in Zend/zend_operators.c).
  • Fixed bug GH-16572 (Incorrect result with reflection in low-trigger JIT).
  • Fixed GH-16839 (Error on building Opcache JIT for Windows ARM64).
openssl
  • Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter).
  • Implement request #48520 (openssl_csr_new - allow multiple values in DN).
  • Introduced new serial_hex parameter to openssl_csr_sign.
  • Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants.
  • Bumped minimum required OpenSSL version to 1.1.1.
  • Added compile-time option --with-openssl-legacy-provider to enable legacy provider.
  • Added support for Curve25519 + Curve448 based keys.
  • Fixed bug GH-13343 (openssl_x509_parse should not allow omitted seconds in UTCTimes).
  • Bumped minimum required OpenSSL version to 1.1.0.
  • Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2.
output
  • Clear output handler status flags during handler initialization.
  • Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var().
pcntl
  • Added pcntl_setns for Linux.
  • Added pcntl_getcpuaffinity/pcntl_setcpuaffinity.
  • Updated pcntl_get_signal_handler signal id upper limit to be more in line with platforms limits.
  • Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos.
  • Added pcntl_getqos_class/pcntl_setqos_class for macOs.
  • Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD.
  • Added FreeBSD's SIGTRAP handling to pcntl_siginfo_to_zval.
  • Added POSIX pcntl_waitid.
  • Fixed bug GH-16769: (pcntl_sigwaitinfo aborts on signal value as reference).
pcre
  • Upgrade bundled pcre2lib to version 10.43.
  • Add "/r" modifier.
  • Upgrade bundled pcre2lib to version 10.44.
  • Fixed GH-16189 (underflow on offset argument).
  • Fix UAF issues with PCRE after request shutdown.
pdo
  • Fixed setAttribute and getAttribute.
  • Implemented PDO driver-specific subclasses RFC.
  • Added support for PDO driver-specific SQL parsers.
  • Fixed bug GH-14792 (Compilation failure on pdo_* extensions).
  • mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT.
  • The internal header php_pdo_int.h is no longer installed; it is not supposed to be used by PDO drivers.
  • 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_dblib
  • Fixed setAttribute and getAttribute.
  • Added class Pdo\DbLib.
pdo_firebird
  • Fixed setAttribute and getAttribute.
  • Feature: Add transaction isolation level and mode settings to pdo_firebird.
  • Added class Pdo\Firebird.
  • Added Pdo\Firebird::ATTR_API_VERSION.
  • Added getApiVersion() and removed from getAttribute().
  • Supported Firebird 4.0 datatypes.
  • Support proper formatting of time zone types.
  • Fixed GH-15604 (Always make input parameters nullable).
pdo_mysql
  • Fixed setAttribute and getAttribute.
  • Added class Pdo\Mysql.
  • Added custom SQL parser.
  • Fixed GH-15949 (PDO_MySQL not properly quoting PDO_PARAM_LOB binary data).
pdo_odbc
  • Added class Pdo\Odbc.
pdo_pgsql
  • Fixed GH-12423, DSN credentials being prioritized over the user/password PDO constructor arguments.
  • Fixed native float support with pdo_pgsql query results.
  • Added class Pdo\Pgsql.
  • Retrieve the memory usage of the query result resource.
  • Added Pdo\Pgsql::setNoticeCallBack method to receive DB notices.
  • Added custom SQL parser.
  • Fixed GH-15986 (Double-free due to Pdo\Pgsql::setNoticeCallback()).
  • Fixed GH-12940 (Using PQclosePrepared when available instead of the DEALLOCATE command to free statements resources).
  • Remove PGSQL_ATTR_RESULT_MEMORY_SIZE constant as it is provided by the new PDO Subclass as Pdo\Pgsql::ATTR_RESULT_MEMORY_SIZE.
pdo_sqlite
  • Added class Pdo\Sqlite.
  • Fixed bug #81227 (PDO::inTransaction reports false when in transaction).
  • Added custom SQL parser.
phpdbg
  • array out of bounds, stack overflow handled for segfault handler on windows.
  • Fixed bug GH-16041 (Support stack limit in phpdbg).
pgsql
  • Added the possibility to have no conditions for pg_select.
  • Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag.
  • Added pg_result_memory_size to get the query result memory usage.
  • Added pg_change_password to alter an user's password.
  • Added pg_put_copy_data/pg_put_copy_end to send COPY commands and signal the end of the COPY.
  • Added pg_socket_poll to poll on the connection.
  • Added pg_jit to get infos on server JIT support.
  • Added pg_set_chunked_rows_size to fetch results per chunk.
  • pg_convert/pg_insert/pg_update/pg_delete ; regexes are now cached.
phar
  • Fixed bug GH-12532 (PharData created from zip has incorrect timestamp).
posix
  • Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants.
  • Updated posix_isatty to set the error number on file descriptors.
pspell
  • Moved to PECL.
random
  • Fixed bug GH-15094 (php_random_default_engine() is not C++ conforming).
  • lcg_value() is now deprecated.
readline
  • Fixed readline_info, rl_line_buffer_length/rl_len globals on update.
  • Fixed bug #51558 (Shared readline build fails).
  • Fixed UAF with readline_info().
reflection
  • Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump).
  • Make ReflectionGenerator::getFunction() legal after generator termination.
  • Added ReflectionGenerator::isClosed().
  • Fixed bug GH-15718 (Segfault on ReflectionProperty::get{Hook,Hooks}() on dynamic properties).
  • Fixed bug GH-15694 (ReflectionProperty::isInitialized() is incorrect for hooked properties).
  • Add missing ReflectionProperty::hasHook[s]() methods.
  • Add missing ReflectionProperty::isFinal() method.
  • Fixed bug GH-16122 (The return value of ReflectionFunction::getNamespaceName() and ReflectionFunction::inNamespace() for closures is incorrect).
  • Fixed bug GH-16162 (No ReflectionProperty::IS_VIRTUAL)
  • Fixed the name of the second parameter of ReflectionClass::resetAsLazyGhost().
session
  • INI settings session.sid_length and session.sid_bits_per_character are now deprecated.
  • Emit warnings for non-positive values of session.gc_divisor and negative values of session.gc_probability.
  • Fixed bug GH-16590 (UAF in session_encode()).
simplexml
  • Fix signature of simplexml_import_dom().
snmp
  • Removed the deprecated inet_ntoa call support.
soap
  • Add support for clark notation for namespaces in class map.
  • Mitigate #51561 (SoapServer with a extented class and using sessions, lost the setPersistence()).
  • Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if wsdl operation !has output).
  • Fixed bug #44383 (PHP DateTime not converted to xsd:datetime).
  • Fixed bug GH-11941 (soap with session persistence will silently fail when "session" built as a shared object).
  • Passing an int to SoapServer::addFunction() is now deprecated. If all PHP functions need to be provided flatten the array returned by get_defined_functions().
  • The SOAP_FUNCTIONS_ALL constant is now deprecated.
  • Fixed bug #61525 (SOAP functions require at least one space after HTTP header colon).
  • Implement request #47317 (SoapServer::__getLastResponse()).
sockets
  • Removed the deprecated inet_ntoa call support.
  • Added the SO_EXECLUSIVEADDRUSE windows constant.
  • Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants.
  • Added multicast group support for ipv4 on FreeBSD.
  • Added the TCP_SYNCNT constant for Linux to set number of attempts to send SYN packets from the client.
  • Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris.
  • Updated the socket_create_listen backlog argument default value to SOMAXCONN.
  • Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for macOs and FreeBSD.
  • Added SO_LINGER_SEC for macOs, true equivalent of SO_LINGER in other platforms.
  • Add close-on-exec on socket created with socket_accept on unixes.
  • Added IP_PORTRANGE* constants for BSD systems to control ephemeral port ranges.
  • Added SOCK_NONBLOCK/SOCK_CLOEXEC constants for socket_create and socket_create_pair to apply O_NONBLOCK/O_CLOEXEC flags to the newly created sockets.
  • Added SO_BINDTOIFINDEX to bind a socket to an interface index.
sodium
  • Add support for AEGIS-128L and AEGIS-256.
  • Enable AES-GCM on aarch64 with the ARM crypto extensions.
spl
  • Implement SeekableIterator for SplObjectStorage.
  • The SplFixedArray::__wakeup() method has been deprecated as it implements __serialize() and __unserialize() which need to be overwritten instead.
  • Passing a non-empty string for the $escape parameter of:
  • SplFileObject::setCsvControl()
  • SplFileObject::fputcsv()
  • SplFileObject::fgetcsv() is now deprecated.
standard
  • Implement GH-12188 (Indication for the int size in phpinfo()).
  • Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994).
  • Fix GH-12252 (round(): Validate the rounding mode).
  • Increase the default BCrypt cost to 12.
  • Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask).
  • Removed the deprecated inet_ntoa call support.
  • Cast large floats that are within int range to int in number_format so the precision is not lost.
  • Add support for 4 new rounding modes to the round() function.
  • debug_zval_dump() now indicates whether an array is packed.
  • Fix GH-12143 (Optimize round).
  • Changed return type of long2ip to string from string|false.
  • Fix GH-12143 (Extend the maximum precision round can handle by one digit).
  • Added the http_get_last_response_headers() and http_clear_last_response_headers() that allows retrieving the same content as the magic $http_response_header variable.
  • Add php_base64_encode_ex() API.
  • Implemented "Raising zero to the power of negative number" RFC.
  • Added array_find(), array_find_key(), array_all(), and array_any().
  • Change highlight_string() and print_r() return type to string|true.
  • Fix references in request_parse_body() options array.
  • Add RoundingMode enum.
  • Unserializing the uppercase 'S' tag is now deprecated.
  • Enables crc32 auxiliary detection on OpenBSD.
  • Passing a non-empty string for the $escape parameter of:
  • fputcsv()
  • fgetcsv()
  • str_getcsv() is now deprecated.
  • The str_getcsv() function now throws ValueErrors when the $separator and $enclosure arguments are not one byte long, or if the $escape is not one byte long or the empty string. This aligns the behaviour to be identical to that of fputcsv() and fgetcsv().
  • php_uname() now throws ValueErrors on invalid inputs.
  • The "allowed_classes" option for unserialize() now throws TypeErrors and ValueErrors if it is not an array of class names.
  • Implemented GH-15685 (improve proc_open error reporting on Windows).
  • Add support for backed enums in http_build_query().
  • Fixed bug GH-15982 (Assertion failure with array_find when references are involved).
  • Fixed parameter names of fpow() to be identical to pow().
streams
  • Implemented GH-15155 (Stream context is lost when custom stream wrapper is being filtered).
tidy
  • Failures in the constructor now throw exceptions rather than emitting warnings and having a broken object.
  • Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling().
windows
  • Update the icon of the Windows executables, e.g. php.exe.
  • Fixed bug GH-16199 (GREP_HEADER() is broken).
xml
  • Added XML_OPTION_PARSE_HUGE parser option.
  • Fixed bug #81481 (xml_get_current_byte_index limited to 32-bit numbers on 64-bit builds).
  • The xml_set_object() function has been deprecated.
  • Passing non-callable strings to the xml_set_*_handler() functions is now deprecated.
xmlreader
  • Declares class constant types.
  • Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString().
  • Fixed bug GH-15123 (var_dump doesn't actually work on XMLReader).
xmlwriter
  • Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory().
xsl
  • Implement request #64137 (XSLTProcessor::setParameter() should allow both quotes to be used).
  • Implemented "Improve callbacks in ext/dom and ext/xsl" RFC.
  • Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars.
  • Fix trampoline leak in xpath callables.
zip
  • Added ZipArchive::ER_TRUNCATED_ZIP added in libzip 1.11.
To Top