summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2003-10-14 14:44:19 +0000
committerAndi Gutmans <andi@php.net>2003-10-14 14:44:19 +0000
commit01ba151cc3dbd35bdd3d2ba3dfe15ae32a02cf30 (patch)
tree04ef36616956ad691acb1c5557d4cee3498c4860
parent6a71c1d33fdeb9650895e926a95822fff506bf94 (diff)
downloadphp-git-01ba151cc3dbd35bdd3d2ba3dfe15ae32a02cf30.tar.gz
- Fix the fix by making sure the new block is in the right free list.
-rw-r--r--Zend/zend_mm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Zend/zend_mm.c b/Zend/zend_mm.c
index 7e3511542b..c74753e3bb 100644
--- a/Zend/zend_mm.c
+++ b/Zend/zend_mm.c
@@ -387,10 +387,12 @@ void *zend_mm_realloc(zend_mm_heap *heap, void *p, size_t size)
new_next_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
if (new_next_block != next_block) { /* A new free block was created */
+ zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) new_next_block);
zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
new_next_block->size += next_block->size;
/* update the next block's prev_size */
ZEND_MM_BLOCK_AT(mm_block, new_next_block->size)->prev_size = new_next_block->size;
+ zend_mm_add_to_free_list(heap, (zend_mm_free_block *) new_next_block);
}
}
return p;