summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Weinand <bobwei9@hotmail.com>2016-12-01 15:21:28 +0100
committerBob Weinand <bobwei9@hotmail.com>2016-12-01 15:21:28 +0100
commitfcaccbaa22784084d2cb59821b4e66c230702851 (patch)
treec9031903643de350f5a20ab4f69fc2f7eb43a4ef
parent2252d4e59d62510a490382d457167a9eac640228 (diff)
downloadphp-git-fcaccbaa22784084d2cb59821b4e66c230702851.tar.gz
Fix valgrind issue when throwing due to yield from aborted generator
-rw-r--r--Zend/zend_generators.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
index 6055e76e96..8dc9484eb0 100644
--- a/Zend/zend_generators.c
+++ b/Zend/zend_generators.c
@@ -519,6 +519,7 @@ ZEND_API zend_generator *zend_generator_update_current(zend_generator *generator
generator->execute_fake.prev_execute_data = original_execute_data;
}
+ root->execute_data->opline--; /* ZEND_YIELD(_FROM) already advance, so decrement opline to throw from correct place */
zend_throw_exception(zend_ce_ClosedGeneratorException, "Generator yielded from aborted, no return value available", 0);
EG(current_execute_data) = original_execute_data;