[New-bugs-announce] [issue45758] Crash on Py_DecRef'ing builtin object from previous run

Victor Milovanov report at bugs.python.org
Mon Nov 8 18:07:35 EST 2021


New submission from Victor Milovanov <lostfreeman at gmail.com>:

Trying to Py_DecRef owned reference to builtin "iter" crashes if the reference was alive when runtime was reinitialized.

Py_Initialize();
PyObject* builtins = PyEval_GetBuiltins();
PyObject* iter = PyDict_GetItemString(builtins, "iter");

Py_IncRef(iter);

Py_Finalize();

// ----- new run starts, iter should still be alive

Py_Initialize();

Py_DecRef(iter);

Py_Finalize(); // fails inside PyGC_Collect -> validate_list

Related on StackOverflow: https://stackoverflow.com/questions/69890182/is-it-safe-to-call-py-decref-on-an-object-created-before-the-last-py-initializ

----------
components: C API
messages: 405987
nosy: Victor Milovanov
priority: normal
severity: normal
status: open
title: Crash on Py_DecRef'ing builtin object from previous run
type: crash
versions: Python 3.10, Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue45758>
_______________________________________


More information about the New-bugs-announce mailing list