Commit 04c2058c6db for php

commit 04c2058c6dbd86e4eb5059bf51b2f03bc09f0f46
Merge: cd383dcc377 f9cf4fb51bf
Author: Kamil Tekiela <tekiela246@gmail.com>
Date:   Mon Oct 12 14:36:02 2026 +0100

    Merge branch 'PHP-8.6'

diff --cc NEWS
index 44fb719c698,cbc53640df9..e027d6c139e
--- a/NEWS
+++ b/NEWS
@@@ -1,26 -1,144 +1,26 @@@
  PHP                                                                        NEWS
  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 -?? ??? ????, PHP 8.6.0RC4
 +?? ??? ????, PHP 8.7.0alpha1

 -- Core:
 -  . Fixed bug GH-24184 (System ID not being reinitialized after an Apache
 -    graceful restart, potentially causing incompatible OPcache file cache
 -    entries to be reused). (Levi Morrison)
 -  . Fixed memory leak when an exception already contains the pending exception
 -    in its previous chain. (Edmond)
 -  . Fixed bug GH-23979 (Nullsafe operator must not flush delayed oplines of an
 -    enclosing function). (ndossche)
 -  . Fixed memory manager keeping a block reallocated to exactly the size of
 -    the next smaller bin in its larger bin, which efree_size() then freed
 -    into the wrong one. (Marc Bennewitz)
 -  . Fix throwing behaviour with recursive arrays in VM. (ndossche)
 +- Curl:
-   . curl_multi_exec() now throws a TypeError when still_running is not an int.
++  . curl_multi_exec() now throws a TypeError when still_running is not an int.
 +    (arshidkv12)

  - FPM:
 -  . Fixed bug GH-24229 (fcgi_close() passes shutdown() a literal 1, which is
 -    SHUT_RD in WASI). (Ryosuke Ishibashi)
 -
 -- MBString:
 -  . Fixed bug GH-23958 (truncated encoding names resolving to full names). (Kamil Tekiela)
 -
 -- Opcache:
 -  . Fixed bug GH-17626 (JIT corrupts an opline handler when blacklisting a
 -    root trace at the opcache.jit_max_root_traces limit, causing spurious
 -    "Too few arguments" errors and crashes). (RV7PR)
 -  . Fix type inference of ADD_ARRAY_UNPACK with integer keys. (ndossche)
 -  . Fix too wide type inference for ASSIGN_DIM_OP. (ndossche)
 -  . Fix OSS-Fuzz #568005340 (FETCH_DIM_FUNC_ARG partial conversion). (ndossche)
 -  . Fix exception checks due to NAN warnings and object empty()'s. (ndossche)
 -
 -- PDO:
 -  . Fixed a duplicate warning when ATTR_STATEMENT_CLASS is rejected on a
 -    persistent connection. (Ilia Alshanetsky)
 -
 -- Phpdbg:
 -  . Fix wrong command names. (ndossche, Weilin Du)
 -
 -- Phar:
 -  . Fixed GH-24166 (Double-free in Phar::webPhar() in CGI without PATH_INFO).
 -    (RigelYoung, Jakub Zelenka)
 -
 -- Session:
 -  . Fixed session_write_close() keeping the save handler open when the
 -    session data cannot be encoded. (Ilia Alshanetsky)
 -
 -- Standard:
 -  . Fixed chown() and lchown() failing to resolve user names in ZTS builds
 -    when getpwnam_r() needs a larger buffer. (Ilia Alshanetsky)
 -  . Fixed password_get_info() and password_needs_rehash() accepting malformed
 -    bcrypt costs. (Ilia Alshanetsky)
 -
 -- Zip:
 -  . Fixed use-after-free when re-entering ZipArchive during destruction or
 -    a close warning, and rejected opening streams while closing. (jvoisin)
 -  . Fixed a use-after-free when a ZipArchive method that modifies the archive
 -    is called from a progress or cancel callback during close().
 -    (Ilia Alshanetsky)
 -
 -- Zlib:
 -  . Fixed use-after-free when an error handler removes a failing zlib.inflate
 -    filter (GH-24176). (Edmond)
 -
 -08 Oct 2026, PHP 8.6.0RC3
 -
 -- BCMath:
 -  . Fixed BcMath\Number results that truncate to zero keeping a negative sign
 -    and comparing less than zero. (Ilia Alshanetsky)
 +  . Use recommended TYPE, HELP order for OpenMetrics metadata.
 +    (Marcel Hernandez)

 -- BZ2:
 -  . Fixed double close of the descriptor and use-after-free of the inner
 -    stream when bzopen() is given a stream resource. (Jakub Zelenka)
 -
 -- CLI
 -  . Fix GH-22567 (Windows ZTS CLI SAPI should refresh its TSRMLS cache during
 -    request activation). (matyhtf)
 -  . Fixed bug GH-23764 (Built-in server leaks a file descriptor on every HEAD
 -    request for a static file). (jakubskopal)
 -  . Fixed crash in the built-in server when a client is reset before being
 -    accepted. (David Carlier)
 -  . Fixed the built-in server truncating an error page and leaking its
 -    unsent part after a partial socket write. (Ilia Alshanetsky)
 -
 -- Core
 -  . Fixed bug GH-23644 (Optimizer leaves a constant-vs-constant comparison
 -    unfolded, crashing the VM in zval_undefined_cv). (ndossche)
 -  . Fixed OSS-Fuzz 532353396 (assertion failure with static type). (Girgias)
 -  . Fix GH-23662 (Avoid NAN warning in print_r()). (CodedByManish)
 -  . Fix GH-21999: GC inconsistency with lazy object, var_dump(), and object
 -    comparison. (Arnaud)
 -  . Fixed OSS-Fuzz #536440507 (Immutable class incorrect assertion).
 -    (ndossche)
 -  . Fixed bug GH-23628 (Tracing JIT reads undefined property slots of lazy
 -    proxy objects instead of forwarding to the real instance). (lisachenko)
 -  . Fixed bug GH-23882 (array_map() optimization is incorrect for
 -    strict_types=1). (timwolla)
 -  . Fixed OSS-Fuzz #565486253 (coerced arg with '...' on non-variadic
 -    function). (ndossche)
 -  . Fixed AVX being reported as supported when the OS has not enabled AVX
 -    state. (Ilia Alshanetsky)
 -  . Fixed OSS-Fuzz #552682112 (assertion failure wrt
 -    zp_arg_must_be_sent_by_ref()). (ndossche)
 -  . Fixed GH-23921 (Fibers start with error_reporting = 0 when the
 -    error_reporting INI directive is not set). (Girgias)
 -  . Fixed GH-23980 (ZEND_ASSERT violation @ ZEND_INCLUDE_OR_EVAL). (ndossche)
 -  . Deprecated using "let" or "is" as the name of a class, function, or
 -    constant, and as an alias in class_alias() and use declarations. (Girgias)
 -  . Deprecated using "_" as a constant name and as an alias for a class or
 -    constant in use declarations. (Girgias)
 -  . Switch the POSIX high resolution timer back to CLOCK_MONOTONIC from
 -    CLOCK_MONOTONIC_RAW. (nicolas-grekas)
 -  . Fixed array_map optimization with non-literal function or non-literal args.
 -    (Arnaud)
 -  . Fixed use-after-free when a dl()-loaded extension declares a frameless
 -    function and a later request calls it. (Ilia Alshanetsky)
 -  . Fixed System V shared memory emulation for Windows attaching segments past
 -    the end of their mapping. (Ilia Alshanetsky)
 -  . Fixed exception thrown by destructor during GC in a Fiber not being rethrown
 -    into the frame that triggered the GC. (Nicolas Grekas)
 -
 -- DOM:
 -  . Fixed DOMXPath and Dom\XPath losing the context node and in-scope
 -    namespaces of an evaluation after a php:function() callback evaluated
 -    another expression on the same object. (Ilia Alshanetsky)
 -
 -- FFI:
 -  . Fixed crashes with FFI callbacks created from __call() trampolines
 -    and array callables whose object is released. (Ilia Alshanetsky)
 +- Hash:
 +  . Fixed mhash_keygen_s2k() truncating a $length above INT_MAX instead of
 +    throwing a ValueError. (Marc Bennewitz)

  - Intl:
 -  . Fixed grapheme_strstr() and grapheme_stristr() returning incorrect substrings
 -    when supplementary characters precede the match. (Weilin Du)
 -  . Fixed grapheme_strstr() and grapheme_strpos() missing canonically
 -    equivalent matches, and grapheme searches reporting ICU errors for empty
 -    haystacks. (Weilin Du)
 -  . Fixed grapheme_strrpos() and grapheme_strripos() skipping overlapping matches
 -    when using a negative offset. (Weilin Du)
 -  . Fixed IntlDateFormatter::parse(), localtime() and parseToCalendar()
 -    treating the offset as UTF-16 code units instead of bytes.
 +  . Fixed Collator attribute and strength methods not rejecting an
 +    unconstructed Collator. (Ilia Alshanetsky)
 +  . Added optional $availableLocales argument to Locale::acceptFromHttp()
 +    (GH-24074). (David Carlier)
 +  . Fixed a double-free when Calendar::createInstance() or
 +    IntlCalendar::fromDateTime() fails after adopting a TimeZone.
      (Ilia Alshanetsky)

  - Lexbor:
@@@ -43,6 -308,6 +43,7 @@@
    . Updated Unicode data tables to Unicode 18.0 (Yuya Hamada)
    . Fixed mbstring functions emitting surrogates in UTF-8 output and flagging
      it as valid UTF-8. (Nicolas Grekas)
++  . Fixed bug GH-23958 (truncated encoding names resolving to full names). (Kamil Tekiela)

  - MySQLi:
    . Fix GH-22854: Fixed failed assertion when accessing mysqli property after