Skip to content

Commit 22328f6

Browse files
committed
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0: Fix memory leak
2 parents 7e8257f + 84a638a commit 22328f6

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
--TEST--
2+
Memory leak when resume an already running generator
3+
--FILE--
4+
<?php
5+
function gen() {
6+
$g = yield;
7+
$g->send($g);
8+
}
9+
$gen = gen();
10+
try {
11+
$gen->send($gen);
12+
} catch (Throwable $e) {
13+
echo $e->getMessage() . "\n";
14+
}
15+
?>
16+
--EXPECT--
17+
Cannot resume an already running generator

Zend/zend_generators.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -920,6 +920,7 @@ ZEND_METHOD(Generator, send)
920920
root = zend_generator_get_current(generator);
921921
/* Put sent value in the target VAR slot, if it is used */
922922
if (root->send_target) {
923+
zval_ptr_dtor(root->send_target);
923924
ZVAL_COPY(root->send_target, value);
924925
}
925926

0 commit comments

Comments
 (0)