From 4553258df3f440fe97819413f1870deff9bb85ee Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 1 Aug 2023 16:01:11 +0300 Subject: [PATCH] Fixed incorrect tracked malloc deallocation Fixes ext/ffi/tests/list.phpt failure --- Zend/zend_alloc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index ae22be434fb..7fd41f3b1ab 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -2412,6 +2412,13 @@ ZEND_API bool is_zend_ptr(const void *ptr) { #if ZEND_MM_CUSTOM if (AG(mm_heap)->use_custom_heap) { + if (AG(mm_heap)->custom_heap.std._malloc == tracked_malloc) { + zend_ulong h = ((uintptr_t) ptr) >> ZEND_MM_ALIGNMENT_LOG2; + zval *size_zv = zend_hash_index_find(AG(mm_heap)->tracked_allocs, h); + if (size_zv) { + return 1; + } + } return 0; } #endif