Closed
Description
Crash report
What happened?
There is a segmentation fault with simple code snippet:
g = (x for x in range(10))
g.gi_frame.f_locals['.0'] = range(20)
list(g)
print("No segfault")
There is a SIGSEGV on my linux machine (Debian GNU/Linux 10) with both main branch Python and 3.13 version.
Message "No segfault" is printed on Python 3.7.3 (default, Oct 31 2022, 14:04:00).
CPython versions tested on:
3.13, CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
Python 3.14.0a0 (heads/peg_parser_remove_redundant_functions:e1b62e5cf79, Oct 3 2024, 14:38:46) [GCC 8.3.0]
Linked PRs
- gh-125038: Iterator checks are added for some FOR_ITER bytecodes, crash fixed #125051
- gh-125038: Crash after genexpr.gi_frame.f_locals manipulations is fixed #125178
- [3.13] gh-125038: Fix crash after genexpr.gi_frame.f_locals manipulations (GH-125178) #125846
- gh-125038: redundant GET_ITER instructions are removed from genexpr code #126408