Commit f5c66773fd6 for php

commit f5c66773fd6dcf38d16d3e46603fd19b347d2e5b
Merge: 1b81b8c03ed 9c20c86bcc9
Author: Ilia Alshanetsky <ilia@ilia.ws>
Date:   Wed Sep 30 08:50:59 2026 -0400

    Merge branch 'PHP-8.5' into PHP-8.6

    * PHP-8.5:
      Fix HashTable UAF when rebound from a parameter __toString()

diff --cc NEWS
index 0457c116b93,657857fc24a..33f1bef214b
--- a/NEWS
+++ b/NEWS
@@@ -6,114 -6,18 +6,116 @@@ PH
    . Fixed BcMath\Number results that truncate to zero keeping a negative sign
      and comparing less than zero. (Ilia Alshanetsky)

 +- CLI:
 +  . 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)
 +
 +- FFI:
 +  . Fixed crashes with FFI callbacks created from __call() trampolines
 +    and array callables whose object is released. (Ilia Alshanetsky)
 +
 +- MySQLnd:
 +  . Fixed field_count not resetting on OK packet. (Kamil Tekiela)
 +  . Fixed memory leak when closing a prepared statement after its connection
 +    was killed. (Kamil Tekiela)
 +
 +- Opcache:
 +  . Fix zend_analyze_calls() call_stack buffer overrun. (Mrmaxmeier)
 +  . Fixed bug GH-23679 (Tracing JIT writes a parent private property into a
 +    child's shadowing public property). (Ilia Alshanetsky)
 +  . Fix multiple incorrect DCE due to unsound escape analysis. (ndossche,
 +    arnaud-lb)
 +
 +- OpenSSL:
 +  . Fixed stream_socket_enable_crypto() leaving the socket non-blocking
 +    after a handshake timeout. (Ilia Alshanetsky)
 +  . Fix memory leak by doing early salt validation. (adapik)
 +
 +- PCNTL:
 +  . Fixed pcntl_signal_dispatch() dropping the queued signals when it runs while
 +    an exception is pending. (nicolas-grekas)
 +  . Fixed pcntl_signal_dispatch() dropping the signals queued behind a handler
 +    that throws. (nicolas-grekas)
 +  . Fixed bug GH-23986 (/proc/self paths resolve to the parent process after
 +    pcntl_fork()). (Lazizbek Ergashev)
 +
 +- PDO:
 +  . Fixed PDO::setAttribute() installing a PDO::ATTR_STATEMENT_CLASS class
 +    whose constructor arguments it rejects. (Ilia Alshanetsky)
 +  . Fixed PDO::ATTR_STATEMENT_CLASS constructor_args type errors reporting
 +    "array given" regardless of the value passed. (Ilia Alshanetsky)
 +  . Fixed PDOStatement::bindParam() and bindColumn() leaking the driver
 +    options value. (Ilia Alshanetsky)
 +  . Fixed PDOStatement::execute() leaving the previous result available
 +    after a failed execution. (Ilia Alshanetsky)
++  . Fixed a use-after-free when bindValue()/execute()/closeCursor() is called
++    from a bound parameter's __toString() during execute(). (Ilia Alshanetsky)
 +
 +- PDO_DBLIB:
 +  . Fixed bug GH-23741 (segfault after a failed query inside a PDO
 +    transaction). Errors raised by beginTransaction(), commit(), rollBack()
 +    and lastInsertId() are now reported instead of being dropped.
 +    (Ilia Alshanetsky)
 +
 +- PDO_PGSQL:
 +  . Fixed crash when a persistent connection fails. (KentarouTakeda)
 +
 +- Reflection:
 +  . Fixed bug GH-23842 (ReflectionProperty::skipLazyInitialization() copies
 +    invalid constant defaults with OPcache). (DirkTrunkstar, Lazizbek Ergashev)
 +
 +- SimpleXML:
 +  . Fixed reconstructing a SimpleXMLElement freeing a child element that
 +    another variable still references. (Ilia Alshanetsky)
 +
 +- Tidy:
 +  . Fixed a use-after-free when a tidyNode is used after its document is
 +    reparsed. (Ilia Alshanetsky)
 +
 +- Zip:
 +  . Fixed bug GH-23899 (Assertion failure when a cancel callback returns an
 +    invalid type during shutdown). (Weilin Du)
 +
 +24 Sep 2026, PHP 8.6.0RC2
 +
 +- Core:
 +  . Fixed incorrect internal pointer and foreach iterator positions when
 +    compacting arrays with holes. (Weilin Du)
 +  . Fix handling of references to typed properties during unserialization
 +    of various internal classes. (ndossche, timwolla)
 +  . Fixed OSS-Fuzz 532353396 (assertion	failure	with static type). (Girgias)
 +  . Fix GH-23662 (Avoid NAN warning in print_r()). (CodedByManish)
 +  . Fixed bug GH-23752 (Use scoped diagnostic suppression for the global
 +    register declarations so the caller's -Wvolatile-register-var state is
 +    restored). (yqtian-se)
 +  . Fixed OSS-Fuzz #538730793 (Assertion failure when returning by-ref from
 +    closure invoke). (ndossche)
 +  . Fixed OSS-Fuzz #540904105 (ASSERT: ast->attr == T_CLASS_C). (ndossche)

  - CLI
    . Fix GH-22567 (Windows ZTS CLI SAPI should refresh its TSRMLS cache during
diff --cc ext/pdo/pdo_stmt.c
index 55efb18e1e1,1077823d7ee..c08c093974a
--- a/ext/pdo/pdo_stmt.c
+++ b/ext/pdo/pdo_stmt.c
@@@ -99,9 -110,10 +108,10 @@@ static bool dispatch_param_event(pdo_st
  	}

  	if (!stmt->methods->param_hook) {
 -		return 1;
 +		return true;
  	}

+ 	stmt->in_param_event = 1;
  	ht = stmt->bound_params;

  iterate: