Merge branch 'PHP-8.3' into PHP-8.4

* PHP-8.3:
  Fix GH-19397: mb_list_encodings() can cause crashes on shutdown
This commit is contained in:
Niels Dossche 2025-08-08 20:32:55 +02:00
commit db3f6d0bf0
No known key found for this signature in database
GPG key ID: B8A8AD166DF0E2E5
3 changed files with 17 additions and 2 deletions

4
NEWS
View file

@ -49,6 +49,10 @@ PHP NEWS
. Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by
php_libxml_node_free). (nielsdos)
- MbString:
. Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown).
(nielsdos)
- Opcache:
. Reset global pointers to prevent use-after-free in zend_jit_status().
(Florian Engelhardt)

View file

@ -1166,8 +1166,8 @@ PHP_RSHUTDOWN_FUNCTION(mbstring)
MBSTRG(outconv_state) = 0;
if (MBSTRG(all_encodings_list)) {
GC_DELREF(MBSTRG(all_encodings_list));
zend_array_destroy(MBSTRG(all_encodings_list));
/* must be *array* release to remove from GC root buffer and free the hashtable itself */
zend_array_release(MBSTRG(all_encodings_list));
MBSTRG(all_encodings_list) = NULL;
}

View file

@ -0,0 +1,11 @@
--TEST--
GH-19397 (mb_list_encodings() can cause crashes on shutdown)
--EXTENSIONS--
mbstring
--FILE--
<?php
$doNotDeleteThisVariableAssignment = mb_list_encodings();
var_dump(count($doNotDeleteThisVariableAssignment) > 0);
?>
--EXPECT--
bool(true)