mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-126366: Fix crash if __iter__
raises an exception during yield from
(#126369)
This commit is contained in:
parent
407c0366d9
commit
1371295e67
6 changed files with 25 additions and 6 deletions
5
Python/generated_cases.c.h
generated
5
Python/generated_cases.c.h
generated
|
@ -4304,11 +4304,12 @@
|
|||
else {
|
||||
/* `iterable` is not a generator. */
|
||||
_PyFrame_SetStackPointer(frame, stack_pointer);
|
||||
iter = PyStackRef_FromPyObjectSteal(PyObject_GetIter(iterable_o));
|
||||
PyObject *iter_o = PyObject_GetIter(iterable_o);
|
||||
stack_pointer = _PyFrame_GetStackPointer(frame);
|
||||
if (PyStackRef_IsNull(iter)) {
|
||||
if (iter_o == NULL) {
|
||||
goto error;
|
||||
}
|
||||
iter = PyStackRef_FromPyObjectSteal(iter_o);
|
||||
PyStackRef_CLOSE(iterable);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue