diff options
author | Andi Gutmans <andi@php.net> | 2003-10-14 14:44:19 +0000 |
---|---|---|
committer | Andi Gutmans <andi@php.net> | 2003-10-14 14:44:19 +0000 |
commit | 01ba151cc3dbd35bdd3d2ba3dfe15ae32a02cf30 (patch) | |
tree | 04ef36616956ad691acb1c5557d4cee3498c4860 | |
parent | 6a71c1d33fdeb9650895e926a95822fff506bf94 (diff) | |
download | php-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.c | 2 |
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; |