Commit 6c1b05c4290 for php.net
commit 6c1b05c429015abde24a5024965dde97a7df1cc7
Merge: d92b5f9d1cf 8da53b5d31c
Author: Ilia Alshanetsky <ilia@ilia.ws>
Date: Mon Jun 29 10:37:22 2026 -0400
Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
Fix GH-18173: ext/hash relies on implementation-defined malloc alignment
diff --cc NEWS
index 89f41d2bb2d,86ef47098f7..dc37bcf555d
--- a/NEWS
+++ b/NEWS
@@@ -1,20 -1,11 +1,24 @@@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-?? ??? ????, PHP 8.4.24
+?? ??? ????, PHP 8.5.9
+
+- Core:
+ . Fixed bug GH-22290 (AST pretty printing does not correctly handle strings
+ containing NUL). (iliaal)
+ . Fixed bug GH-22206 (missing return in global register detection).
+ (P3p111n0)
+ - Hash:
+ . Fixed bug GH-18173 (ext/hash relies on implementation-defined malloc
+ alignment). (iliaal)
+
+- Opcache:
+ . Fixed bug GH-22158 (Tracing JIT dispatches the observer begin handler
+ through the wrong run_time_cache slot on megamorphic calls). (ptondereau,
+ iliaal)
+ . Fixed bug GH-22443 (Tracing JIT SIGSEGV on megamorphic dynamic calls from
+ an undereferenced run_time_cache map_ptr offset). (iliaal)
+
- Intl:
. Fixed Locale::lookup() and locale_lookup() to return NULL instead of the
fallback locale when a language tag cannot be canonicalized. (Weilin Du)
diff --cc ext/hash/hash.c
index ec5391a6230,1c90f4821f1..6e8bc49d34d
--- a/ext/hash/hash.c
+++ b/ext/hash/hash.c
@@@ -536,9 -540,9 +536,9 @@@ static void php_hash_do_hash_hmac
}
php_stream_close(stream);
if (n < 0) {
- efree(context);
+ php_hash_free_context(ops, context);
efree(K);
- zend_string_release(digest);
+ zend_string_efree(digest);
RETURN_FALSE;
}
diff --cc ext/hash/hash_md.c
index dd299e69589,996e71ec9ff..4af74871fb0
--- a/ext/hash/hash_md.c
+++ b/ext/hash/hash_md.c
@@@ -44,10 -45,11 +45,11 @@@ const php_hash_ops php_hash_md4_ops =
16,
64,
sizeof(PHP_MD4_CTX),
- 1
+ 1,
+ 0
};
-static int php_md2_unserialize(php_hashcontext_object *hash, zend_long magic, const zval *zv);
+static hash_spec_result php_md2_unserialize(php_hashcontext_object *hash, zend_long magic, const zval *zv);
const php_hash_ops php_hash_md2_ops = {
"md2",