Commit 99aec782099 for php.net

commit 99aec78209945ad999b913d70c9617f677b65dd8
Merge: b18b11ee28a 6f6c9e35e83
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Sun Jan 11 01:21:22 2026 +0100

    Merge branch 'PHP-8.4' into PHP-8.5

    * PHP-8.4:
      Fix infinite loop in GC destructor fiber

diff --cc NEWS
index e32d1d5d718,8201bf8cf9c..5f93cb7335e
--- a/NEWS
+++ b/NEWS
@@@ -1,14 -1,11 +1,15 @@@
  PHP                                                                        NEWS
  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 -?? ??? ????, PHP 8.4.18
 +?? ??? ????, PHP 8.5.3

  - Core:
 +  . Fixed bug GH-20806 (preserve_none feature compatiblity with LTO).
 +    (henderkes)
 +  . Fixed bug GH-20767 (build failure with musttail/preserve_none feature
 +    on macOs). (David Carlier)
    . Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown
      function triggered by bailout in php_output_lock_error()). (timwolla)
+   . Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber). (ilutov)

  - MbString:
    . Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is
diff --cc Zend/zend_gc.c
index e15f97ecfe8,7b2ff49a736..edbb9a57bf0
--- a/Zend/zend_gc.c
+++ b/Zend/zend_gc.c
@@@ -1968,9 -1925,10 +1985,11 @@@ static zend_never_inline void gc_call_d
  			break;
  		}
  	}
+
+ 	EG(exception) = exception;
  }

 +/* Perform a garbage collection run. The default implementation of gc_collect_cycles. */
  ZEND_API int zend_gc_collect_cycles(void)
  {
  	int total_count = 0;