Skip to content

Commit 90e4d54

Browse files
committed
Merge branch 'PHP-8.1'
* PHP-8.1: Fix memory leak
2 parents ace00fa + 22328f6 commit 90e4d54

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
@@ -938,6 +938,7 @@ ZEND_METHOD(Generator, send)
938938
root = zend_generator_get_current(generator);
939939
/* Put sent value in the target VAR slot, if it is used */
940940
if (root->send_target) {
941+
zval_ptr_dtor(root->send_target);
941942
ZVAL_COPY(root->send_target, value);
942943
}
943944

0 commit comments

Comments
 (0)