Skip to content

Commit 2f79a43

Browse files
committed
Fix
1 parent d944845 commit 2f79a43

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

Zend/zend_alloc.c

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,27 +1263,31 @@ static void *zend_mm_alloc_pages(zend_mm_heap *heap, uint32_t pages_count ZEND_F
12631263

12641264
found:
12651265
if (steps > 2 && pages_count < 8) {
1266-
ZEND_MM_UNPOISON_CHUNK_HDR(chunk->next);
1267-
ZEND_MM_UNPOISON_CHUNK_HDR(chunk->prev);
1268-
ZEND_MM_CHECK(chunk->next->prev == chunk, "zend_mm_heap corrupted");
1269-
ZEND_MM_CHECK(chunk->prev->next == chunk, "zend_mm_heap corrupted");
1266+
zend_mm_chunk *prev_chunk = chunk->prev;
1267+
zend_mm_chunk *next_chunk = chunk->next;
1268+
ZEND_MM_UNPOISON_CHUNK_HDR(next_chunk);
1269+
ZEND_MM_UNPOISON_CHUNK_HDR(prev_chunk);
1270+
ZEND_MM_CHECK(next_chunk->prev == chunk, "zend_mm_heap corrupted");
1271+
ZEND_MM_CHECK(prev_chunk->next == chunk, "zend_mm_heap corrupted");
12701272

12711273
/* move chunk into the head of the linked-list */
12721274
chunk->prev->next = chunk->next;
12731275
chunk->next->prev = chunk->prev;
12741276

1275-
ZEND_MM_UNPOISON_CHUNK_HDR(heap->main_chunk);
1276-
ZEND_MM_UNPOISON_CHUNK_HDR(heap->main_chunk->next);
1277+
zend_mm_chunk *main_chunk = heap->main_chunk;
1278+
zend_mm_chunk *main_next_chunk = heap->main_chunk->next;
1279+
ZEND_MM_UNPOISON_CHUNK_HDR(main_chunk);
1280+
ZEND_MM_UNPOISON_CHUNK_HDR(main_next_chunk);
12771281
chunk->next = heap->main_chunk->next;
12781282
chunk->prev = heap->main_chunk;
12791283
chunk->prev->next = chunk;
12801284
chunk->next->prev = chunk;
1281-
ZEND_MM_POISON_CHUNK_HDR(heap->main_chunk->next, heap);
1282-
ZEND_MM_POISON_CHUNK_HDR(heap->main_chunk, heap);
1285+
ZEND_MM_POISON_CHUNK_HDR(main_chunk, heap);
1286+
ZEND_MM_POISON_CHUNK_HDR(main_next_chunk, heap);
12831287

1288+
ZEND_MM_POISON_CHUNK_HDR(next_chunk, heap);
1289+
ZEND_MM_POISON_CHUNK_HDR(prev_chunk, heap);
12841290
ZEND_MM_UNPOISON_CHUNK_HDR(chunk);
1285-
ZEND_MM_POISON_CHUNK_HDR(chunk->next, heap);
1286-
ZEND_MM_POISON_CHUNK_HDR(chunk->prev, heap);
12871291
}
12881292
/* mark run as allocated */
12891293
chunk->free_pages -= pages_count;

0 commit comments

Comments
 (0)