mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
Fixed bug #40770 (Apache child exits when PHP memory limit reached)
This commit is contained in:
parent
ed844bbb3f
commit
ab699d03bc
1
NEWS
1
NEWS
@ -18,6 +18,7 @@ PHP NEWS
|
||||
- Fixed a thread safety issue in gd gif read code (Nuno, Roman Nemecek)
|
||||
- Fixed CVE-2007-1001, GD wbmp used with invalid image size (Pierre)
|
||||
- Fixed bug #40784 (Case sensivity in constructor's fallback). (Tony)
|
||||
- Fixed bug #40770 (Apache child exits when PHP memory limit reached). (Dmitry)
|
||||
- Fixed bug #40764 (line thickness not respected for horizontal and vertical
|
||||
lines). (Pierre)
|
||||
- Fixed bug #40754 (added substr() & substr_replace() overflow checks). (Ilia)
|
||||
|
15
Zend/tests/bug40770.phpt
Executable file
15
Zend/tests/bug40770.phpt
Executable file
@ -0,0 +1,15 @@
|
||||
--TEST--
|
||||
Bug #40770 Apache child exits when PHP memory limit reached
|
||||
--INI--
|
||||
memory_limit=64M
|
||||
--FILE--
|
||||
<?php
|
||||
ini_set('display_errors',true);
|
||||
$mb=148;
|
||||
$var = '';
|
||||
for ($i=0; $i<=$mb; $i++) {
|
||||
$var.= str_repeat('a',1*1024*1024);
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Allowed memory size of 67108864 bytes exhausted%s(tried to allocate %d bytes) in %sbug40770.php on line 6
|
@ -1714,6 +1714,9 @@ realloc_segment:
|
||||
segment_copy = (zend_mm_segment *) ((char *)mm_block - ZEND_MM_ALIGNED_SEGMENT_SIZE);
|
||||
if (segment_size < true_size ||
|
||||
heap->real_size + segment_size - segment_copy->size > heap->limit) {
|
||||
if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
|
||||
zend_mm_add_to_free_list(heap, (zend_mm_free_block *) next_block);
|
||||
}
|
||||
#if ZEND_MM_CACHE
|
||||
zend_mm_free_cache(heap);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user