From 5bc4f818e029e351cb8d9ff9504a02bf1aab7a05 Mon Sep 17 00:00:00 2001 From: Honey Tyagi Date: Sun, 25 Oct 2026 21:42:18 +0530 Subject: [PATCH] Fix GH-24674: var_destroy(): hold serialize_lock around deferred destructor pass --- ext/standard/var_unserializer.re | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re index 51c3293c63e2..f481b3b40a3e 100644 --- a/ext/standard/var_unserializer.re +++ b/ext/standard/var_unserializer.re @@ -316,7 +316,10 @@ PHPAPI void var_destroy(php_unserialize_data_t *var_hashx) } } + /* Do not let a destructor re-enter the unserializer. */ + BG(serialize_lock)++; i_zval_ptr_dtor(zv); + BG(serialize_lock)--; } next = var_dtor_hash->next; efree_size(var_dtor_hash, sizeof(var_dtor_entries)); @@ -1556,3 +1559,4 @@ any { return 0; } return 0; } +