Skip to content

3.12: segmentation fault from compile() builtin #99708

Closed
@davidhewitt

Description

@davidhewitt

Crash report

I can trigger a crash of the 3.12 interpreter using the following Python instruction:

compile("assert (False if 1 else True)", "<string>", "exec")

Error messages

The full output when running locally-built cpython with debug assertions avoids a segfault, triggering an assertion instead:

$ ./python
Python 3.12.0a2+ (heads/main:f1a4a6a587, Nov 22 2022, 22:12:33) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> compile("assert (False if 1 else True)", "<string>", "exec")
python: Python/compile.c:8703: remove_redundant_jumps: Assertion `no_empty_basic_blocks(g)' failed.
Aborted

Your environment

I originally encountered the segmentation fault on macOS with 3.12.0a1.

I have reproduced it above with f1a4a6a on ubuntu (inside WSL).

Linked PRs

Metadata

Metadata

Assignees

Labels

3.12only security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dump

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions