mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1: [ci skip] NEWS [ci skip] NEWS Fix compilation warning Fix crash when memory limit is exceeded during generator initialization
This commit is contained in:
commit
cfd5fb98e4
4 changed files with 18 additions and 0 deletions
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
|
|
@ -4435,6 +4435,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);
|
||||
|
||||
/*
|
||||
|
|
1
Zend/zend_vm_execute.h
generated
1
Zend/zend_vm_execute.h
generated
|
@ -2114,6 +2114,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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue