Skip to content

Commit cfd5fb9

Browse files
committed
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
2 parents 3191bc5 + 386bbf4 commit cfd5fb9

File tree

4 files changed

+18
-0
lines changed

4 files changed

+18
-0
lines changed

Zend/tests/generators/gh9801.phpt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--TEST--
2+
Bug GH-9801 (Crash when memory limit is exceeded during generator initialization)
3+
--INI--
4+
memory_limit=16m
5+
--FILE--
6+
<?php
7+
8+
function a() {
9+
yield from a();
10+
}
11+
12+
foreach(a() as $v);
13+
--EXPECTF--
14+
Fatal error: Allowed memory size of %d bytes exhausted %s

Zend/zend_vm_def.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4435,6 +4435,7 @@ ZEND_VM_HANDLER(139, ZEND_GENERATOR_CREATE, ANY, ANY)
44354435
zend_execute_data *gen_execute_data;
44364436
uint32_t num_args, used_stack, call_info;
44374437

4438+
SAVE_OPLINE();
44384439
object_init_ex(return_value, zend_ce_generator);
44394440

44404441
/*

Zend/zend_vm_execute.h

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

main/php_network.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,13 @@ PHPAPI void _php_emit_fd_setsize_warning(int max_fd);
214214
static inline bool _php_check_fd_setsize(php_socket_t *max_fd, int setsize)
215215
{
216216
#ifdef PHP_WIN32
217+
(void)(max_fd); // Unused
217218
if (setsize + 1 >= FD_SETSIZE) {
218219
_php_emit_fd_setsize_warning(setsize);
219220
return false;
220221
}
221222
#else
223+
(void)(setsize); // Unused
222224
if (*max_fd >= FD_SETSIZE) {
223225
_php_emit_fd_setsize_warning(*max_fd);
224226
*max_fd = FD_SETSIZE - 1;

0 commit comments

Comments
 (0)