Temorary fix for phpdbg segfault while use zend_mm_set_custom_handlers

This commit is contained in:
Xinchen Hui 2015-03-09 11:19:05 +08:00
parent 69d183dd19
commit 96f7a33df6
2 changed files with 11 additions and 1 deletions

View file

@ -1950,6 +1950,9 @@ void zend_mm_shutdown(zend_mm_heap *heap, int full, int silent)
#if ZEND_MM_CUSTOM
if (heap->use_custom_heap) {
if (full) {
heap->_free(heap);
}
return;
}
#endif

View file

@ -983,7 +983,14 @@ void *phpdbg_malloc_wrapper(size_t size) /* {{{ */
void phpdbg_free_wrapper(void *p) /* {{{ */
{
zend_mm_free(phpdbg_mm_get_heap(), p);
zend_mm_heap *heap = phpdbg_mm_get_heap();
if (UNEXPECTED(heap == p)) {
/* TODO: heap maybe allocated by mmap(zend_mm_init) or malloc(USE_ZEND_ALLOC=0)
* let's prevent it from segfault for now
*/
} else {
zend_mm_free(heap, p);
}
} /* }}} */
void *phpdbg_realloc_wrapper(void *ptr, size_t size) /* {{{ */