Commit e284d8c25bd for php

commit e284d8c25bdd0790f78cafd375e0b983272265c6
Merge: 30999ac58ee 48b01b83243
Author: ndossche <7771979+ndossche@users.noreply.github.com>
Date:   Sun Oct 25 12:52:28 2026 +0100

    Merge branch 'PHP-8.5' into PHP-8.6

    * PHP-8.5:
      Fix GH-24264: Unwind/GracefulExit discarded in spl_iterators.c

diff --cc NEWS
index b487df48dde,4513b51b868..1d89beaec1a
--- a/NEWS
+++ b/NEWS
@@@ -1,62 -1,8 +1,66 @@@
  PHP                                                                        NEWS
  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 -?? ??? ????, PHP 8.5.13
 +?? ??? ????, PHP 8.6.0RC5

  - Core:
 +  . Fix function and constant imports in compile_to_ast and add support
 +    for grouping. (Klaas Skelte van der Werf)
 +
 +- DBA:
 +  . Fixed bug GH-24641 (ndbm backend never checks dbm_open() return value,
 +    NULL deref on first use after a failed open). (Girgias)
 +
 +- DOM:
 +  . Fix error paths in dom_xml_serializing_a_document_node(). (ndossche)
 +
 +- Hash:
 +  . Fix GOST and Snefru digests of 512 MiB or more. (Martin Mirchev)
 +
 +- Opcache:
 +  . Fixed tracing JIT returning a wrapped integer instead of a float on
 +    integer overflow after an integer was compared with a float or
 +    numeric-string literal. (Ilia Alshanetsky)
 +  . Fixed use-after-free in JIT ASSIGN_DIM_OP when concatenating into an
 +    empty array element. (jorgsowa)
 +  . Fixed bug GH-24396 (Assertion failure in zend_jit_def_reg() "reg forwarding"
 +    with chained Pi nodes). (ndossche)
 +  . Fixed JIT treating an array as packed after a string key write turned it
 +    into a hash. (jorgsowa)
 +
 +- PDO_PGSQL:
 +  . Fixed bug GH-24461 (DISCARD ALL on persistent connection cleanup drops
 +    PgBouncer's prepared statements). (David Carlier, Artem Ukrainskiy)
 +
 +- SAPI:
 +  . Fixed infinite loop in sapi_header_op() for headers of 4 GiB or more.
 +    (Martin Mirchev)
 +
++- SPL:
++  . Fixed bug GH-24264 (Unwind/GracefulExit discarded in spl_iterators.c).
++    (Lazizbek Ergashev)
++
 +- Standard:
 +  . Fixed bug GH-24308 (Request shutdown calls closelog() even when syslog
 +    was not opened by PHP). (lazerg)
 +
 +- Streams:
 +  . Fixed bug GH-24506 (stream_select() leaks a stream-error operation level
 +    on its FD_SETSIZE failure path). (azjezz)
 +  . Fixed bug GH-24508 (HTTP wrapper leaks the dechunk filter when header
 +    parsing fails after Transfer-Encoding). (bercedev)
 +  . Fixed bug GH-24509 (HTTP wrapper leaks Location buffer on empty
 +    Location header). (bercedev)
 +
 +- Zlib:
 +  . Fixed bug GH-24533 (zlib.lib could not be found because zlib 1.3.2
 +    CMake build does not emit it). (Lazizbek Ergashev)
 +
 +21 Oct 2026, PHP 8.6.0RC4
 +
 +- Core:
 +  . Fixed GHSA-w8hw-w9fx-j79w, GHSA-6wmf-4rv5-p3rp (Avoid state corruption via
 +    bailout). (CVE-2026-109618, CVE-2026-109619) (Arnaud, ilutov, Jakub Zelenka,
 +    ndossche, Nicolas Grekas)
    . 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)
diff --cc ext/spl/spl_iterators.c
index dfcde994a5c,9ad8e0fcb09..94c89448d54
--- a/ext/spl/spl_iterators.c
+++ b/ext/spl/spl_iterators.c
@@@ -408,9 -422,9 +415,9 @@@ next_step
  					sub_iter->funcs->rewind(sub_iter);
  				}
  				if (object->beginChildren) {
 -					zend_call_method_with_0_params(Z_OBJ_P(zthis), object->ce, &object->beginChildren, "beginchildren", NULL);
 +					zend_call_known_function(object->beginChildren, Z_OBJ_P(zthis), object->ce, NULL, 0, NULL, NULL);
  					if (EG(exception)) {
- 						if (!(object->flags & RIT_CATCH_GET_CHILD)) {
+ 						if (!spl_can_catch_exception(object->flags)) {
  							return;
  						} else {
  							zend_clear_exception();
@@@ -422,9 -436,9 +429,9 @@@
  		/* no more elements */
  		if (object->level > 0) {
  			if (object->endChildren) {
 -				zend_call_method_with_0_params(Z_OBJ_P(zthis), object->ce, &object->endChildren, "endchildren", NULL);
 +				zend_call_known_function(object->endChildren, Z_OBJ_P(zthis), object->ce, NULL, 0, NULL, NULL);
  				if (EG(exception)) {
- 					if (!(object->flags & RIT_CATCH_GET_CHILD)) {
+ 					if (!spl_can_catch_exception(object->flags)) {
  						return;
  					} else {
  						zend_clear_exception();