Skip to content

Segfault when trying to use PyRun_SimpleString() with some imports #124160

@luk1337

Description

@luk1337

Crash report

What happened?

I hit the segfault when doing the following thing:

$ docker run -ti fedora:41 bash # dnf -y install gcc python-devel # echo '#include <Python.h> int main() { Py_Initialize(); PyThreadState_Swap(Py_NewInterpreter()); PyRun_SimpleString("import readline"); }' > test.c # gcc test.c -I/usr/include/python3.13 -lpython3.13 # ./a.out Segmentation fault (core dumped) 
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7a8c3cb in reload_singlephase_extension (tstate=tstate@entry=0x7ffff7e5a850, cached=cached@entry=0x0, info=info@entry=0x7fffffff8c90) at /usr/src/debug/python3.13-3.13.0~rc2-1.fc41.x86_64/Python/import.c:1763 1763 PyModuleDef *def = cached->def; 

The same code doesn't crash on 3.12.

CPython versions tested on:

3.13

Operating systems tested on:

Linux

Output from running 'python -VV' on the command line:

Python 3.13.0rc2 (main, Sep 7 2024, 00:00:00) [GCC 14.2.1 20240801 (Red Hat 14.2.1-1)]

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    Done

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions