mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0: [ci skip] NEWS Fix compilation warning Fix crash when memory limit is exceeded during generator initialization
This commit is contained in:
14
Zend/tests/generators/gh9801.phpt
Normal file
14
Zend/tests/generators/gh9801.phpt
Normal file
@@ -0,0 +1,14 @@
|
||||
--TEST--
|
||||
Bug GH-9801 (Crash when memory limit is exceeded during generator initialization)
|
||||
--INI--
|
||||
memory_limit=16m
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
function a() {
|
||||
yield from a();
|
||||
}
|
||||
|
||||
foreach(a() as $v);
|
||||
--EXPECTF--
|
||||
Fatal error: Allowed memory size of %d bytes exhausted %s
|
||||
@@ -4444,6 +4444,7 @@ ZEND_VM_HANDLER(139, ZEND_GENERATOR_CREATE, ANY, ANY)
|
||||
zend_execute_data *gen_execute_data;
|
||||
uint32_t num_args, used_stack, call_info;
|
||||
|
||||
SAVE_OPLINE();
|
||||
object_init_ex(return_value, zend_ce_generator);
|
||||
|
||||
/*
|
||||
|
||||
@@ -2031,6 +2031,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_CREATE_SPEC_HANDLER(
|
||||
zend_execute_data *gen_execute_data;
|
||||
uint32_t num_args, used_stack, call_info;
|
||||
|
||||
SAVE_OPLINE();
|
||||
object_init_ex(return_value, zend_ce_generator);
|
||||
|
||||
/*
|
||||
|
||||
@@ -214,11 +214,13 @@ PHPAPI void _php_emit_fd_setsize_warning(int max_fd);
|
||||
static inline bool _php_check_fd_setsize(php_socket_t *max_fd, int setsize)
|
||||
{
|
||||
#ifdef PHP_WIN32
|
||||
(void)(max_fd); // Unused
|
||||
if (setsize + 1 >= FD_SETSIZE) {
|
||||
_php_emit_fd_setsize_warning(setsize);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
(void)(setsize); // Unused
|
||||
if (*max_fd >= FD_SETSIZE) {
|
||||
_php_emit_fd_setsize_warning(*max_fd);
|
||||
*max_fd = FD_SETSIZE - 1;
|
||||
|
||||
Reference in New Issue
Block a user