Merge branch 'PHP-8.2'

* PHP-8.2:
  Fix incorrect zval type_flags in preg_replace_callback_array() for immutable arrays
This commit is contained in:
Ilija Tovilo 2023-03-31 14:42:44 +02:00
commit fced34ee1d
No known key found for this signature in database
GPG key ID: A4F5D403F118200A
2 changed files with 17 additions and 1 deletions

View file

@ -2438,7 +2438,12 @@ PHP_FUNCTION(preg_replace_callback_array)
}
if (subject_ht) {
RETURN_ARR(subject_ht);
RETVAL_ARR(subject_ht);
// Unset the type_flags of immutable arrays to prevent the VM from performing refcounting
if (GC_FLAGS(subject_ht) & IS_ARRAY_IMMUTABLE) {
Z_TYPE_FLAGS_P(return_value) = 0;
}
return;
} else {
RETURN_STR(subject_str);
}