Merge branch 'PHP-8.3' into PHP-8.4

* PHP-8.3:
  Disable ZEND_RC_MOD_CHECK() while loading shared extension in FPM
This commit is contained in:
Arnaud Le Blanc
2025-03-17 17:40:23 +01:00

View File

@ -93,7 +93,21 @@ int fpm_php_apply_defines_ex(struct key_value_s *kv, int mode) /* {{{ */
if (!strcmp(name, "extension") && *value) {
zval zv;
zend_interned_strings_switch_storage(0);
#if ZEND_RC_DEBUG
bool orig_rc_debug = zend_rc_debug;
/* Loading extensions after php_module_startup() breaks some invariants.
* For instance, it will update the refcount of persistent strings,
* which is normally not allowed at this stage. */
zend_rc_debug = false;
#endif
php_dl(value, MODULE_PERSISTENT, &zv, 1);
#if ZEND_RC_DEBUG
zend_rc_debug = orig_rc_debug;
#endif
zend_interned_strings_switch_storage(1);
return Z_TYPE(zv) == IS_TRUE ? FPM_PHP_INI_EXTENSION_LOADED : FPM_PHP_INI_EXTENSION_FAILED;
}