Commit f38061d6573 for php.net

commit f38061d6573664f0e9daaec3e5e8fd7e8f55db64
Merge: 4923c6079e5 f0db414abc6
Author: Ilia Alshanetsky <ilia@ilia.ws>
Date:   Tue Sep 1 08:24:22 2026 -0400

    Merge branch 'PHP-8.5'

    * PHP-8.5:
      [intl] Fix empty-needle grapheme_strpos offsets
      Fix GH-23444: ODBC_ATTR_ASSUME_UTF8 corrupts Unicode data outside Windows (#23445)

diff --cc NEWS
index 653bcff9e05,2e0f6d1a24c..f3a3914a263
--- a/NEWS
+++ b/NEWS
@@@ -11,76 -13,6 +11,78 @@@ PH
      the null namespace in spec-following mode. (Ilia Alshanetsky)
    . Fixed stale getElementsByClassName() and other node list caches after
      className/classList writes and attribute removals. (Ilia Alshanetsky)
 +
 +- Intl:
++  . Fixed grapheme_strpos() and grapheme_strrpos() with an empty needle
++    returning UTF-16 offsets instead of grapheme offsets. (Ilia Alshanetsky)
 +  . Fixed a memory leak when dumping IntlCalendar instances. (Ilia Alshanetsky)
 +  . Fixed Collator::sortWithSortKeys() allocating fixed 2MiB buffers
 +    regardless of array size. (Ilia Alshanetsky)
 +  . Fixed a memory leak when iterating IntlBreakIterator::getPartsIterator()
 +    results. (iliaal)
 +  . Fixed a leak in Locale::getKeywords() when a keyword value cannot be
 +    read. (iliaal)
 +  . Fixed a use-after-free when IntlRuleBasedBreakIterator is constructed
 +    from compiled rules. (iliaal)
 +
 +- PDO_PGSQL:
 +  . Added Pdo\Pgsql::ATTR_CHUNK_SIZE to fetch a result set in chunks of the
 +    given number of rows. (KentarouTakeda)
 +
 +- PGSQL:
 +  . Fixed the pg_insert(), pg_update() and pg_delete() flag error messages,
 +    which did not name the set of flags actually accepted. (lacatoire)
 +
 +- Phar:
 +  . Fixed bug GH-23418 (Use-after-free when looking up mounted directories).
 +    (Weilin Du)
 +  . Fixed bug GH-23477 (Memory leak on duplicate native Phar manifest entries).
 +    (Weilin Du)
 +
 +- Sockets:
 +  . Fixed socket_set_option() with SO_ATTACH_REUSEPORT_CBPF and a zero value,
 +    which detached the classic BPF filter instead of the reuseport program.
 +    (David Carlier)
 +
 +- SOAP:
 +  . Fixed WSDL cache corruption when a soap:header defines headerfaults.
 +    (Ilia Alshanetsky)
 +
 +- Standard:
 +  . Fixed a segfault when a stream filter callback unsets StreamBucket::$data
 +    before re-attaching the bucket. (iliaal)
 +  . Fixed an out-of-bounds read when following a redirect response with an
 +    empty Location header. (iliaal)
 +  . Fixed read buffer compaction in php_stream_filter_flush(). (crystarm)
 +  . Io\Poll\Context::wait() now rejects a $maxEvents value greater than
 +    INT_MAX instead of truncating it. (marc-mabe)
 +
 +- SimpleXML:
 +  . Fixed writing to a dimension of the object returned by attributes() not
 +    creating the attribute. (Ilia Alshanetsky)
 +
 +
 +27 Aug 2026, PHP 8.6.0beta2
 +
 +- Core:
 +  . Fixed bug GH-15375 (Nested "yield from" skips items after a valid() or
 +    next() call on the inner generator). (iliaal)
 +  . Fixed GH-10497 (Allow direct mutation of objects stored in constants or
 +    class constants via OBJ->prop = $val). (Khaled Alam)
 +  . Reverted GH-22833, which attempted to fix bug GH-18985. (ilutov)
 +  . Using the return statement in a finally block is now deprecated.
 +    (aldemeery)
 +
 +- Curl:
 +  . Set content length using CURLOPT_POSTFIELDSIZE_LARGE instead of
 +    CURLOPT_POSTFIELDSIZE. This makes it possible to post strings larger than
 +    2GB on some platforms, e.g. Windows. (Sjoerd Langkemper)
 +
 +- DOM:
 +  . Fixed a typo in the DOMException message for INUSE_ATTRIBUTE_ERR.
 +    (Weilin Du)
 +  . Fixed bug GH-22624 (use-after-free via DOMNameSpaceNode after
 +    DOMDocument::xinclude()). (David Carlier)
    . Fixed a use-after-free when cloning a DOMNameSpaceNode after
      DOMDocument::xinclude(). (iliaal)
    . Fixed a crash in DOMXPath when a php:function callback receives a nodeset