Commit 38e40bb3fda for php

commit 38e40bb3fdaa26323768232efbff7c8f28e7f414
Merge: 724599cee57 ebd3f8d3e28
Author: Weilin Du <weilindu@php.net>
Date:   Fri Oct 2 01:46:43 2026 +0800

    [skip ci] Merge branch 'PHP-8.5' into PHP-8.6

    * PHP-8.5:
      [skip ci] Merge branch 'PHP-8.4' into PHP-8.5

diff --cc NEWS
index 1bfc1a6be15,4749cdf78ce..47044f8d3e0
--- a/NEWS
+++ b/NEWS
@@@ -41,10 -45,47 +41,13 @@@ PH
    . Fixed crashes with FFI callbacks created from __call() trampolines
      and array callables whose object is released. (Ilia Alshanetsky)

 -- FTP:
 -  . Fixed bug GH-23619 (cryptic error on servers that don't support TLS
 -    session resumption on data connection). (ndossche)
 -
 -- GD:
 -  . Fixed undefined behavior with GD2 images with `INT_MAX`-sized chunks.
 -    (DanielEScherzer, cmb)
 -  . Fixed undefined behavior with GIFs with problematic LZW compression data.
 -    (DanielEScherzer, vapier)
 -
  - Intl:
 -  . Fixed cloning IntlDateFormatter and MessageFormatter losing PHP-side state
 -    such as dateType, timeType, calendar and the message pattern.
 -    (Ilia Alshanetsky)
 -  . Fixed a crash when converting with a cloned UConverter that uses
 -    toUCallback/fromUCallback. (Ilia Alshanetsky)
 -  . Fixed Collator attribute and strength methods not rejecting an
 -    unconstructed Collator. (Ilia Alshanetsky)
 -  . Fixed crash in intl_error_set_custom_msg() without an active call frame.
 -    (David Carlier)
    . 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)

 -- Lexbor:
 -  . Merge patches lexbor/lexbor@8a14bc0 and lexbor/lexbor@f67ce4b, fixing a
 -    heap buffer overflow in :lexbor-contains() parsing and buffer overflows
 -    in malformed decode replay. (alexandre-daubois)
 -
 -- MBString:
 -  . Fixed bug GH-23106 (mb_strpos() reads past the end of a haystack ending in
 -    a truncated UTF-8 sequence). (Lazizbek Ergashev)
 -  . Fixed mbstring functions emitting surrogates in UTF-8 output and flagging
 -    it as valid UTF-8. (Nicolas Grekas)
 -
 -- MySQLi:
 -  . Fix GH-22854: Fixed failed assertion when accessing mysqli property after
 -    failed reconnection. (Kamil Tekiela)
 -
  - MySQLnd:
    . Fixed field_count not resetting on OK packet. (Kamil Tekiela)
    . Fixed memory leak when closing a prepared statement after its connection