[issue14231] Fix or drop Lib/test/crashers/borrowed_ref_1.py

Armin Rigo report at bugs.python.org
Fri Mar 9 17:07:38 CET 2012

Armin Rigo <arigo at users.sourceforge.net> added the comment:

I will attempt a last time to mention that the docstrings in borrowed_ref_*.py used to say they were *examples*.

That means: (1) find any internal or external C function that returns a borrowed reference; (2) find all callers and write down all the places that don't immediately either Py_INCREF() the returned value or immediately forget about it; (3) for each such place, either come up painfully with a complicated explanation of why it's safe in all possible cases, or in doubt, just fix it by adding Py_INCREF()/Py_DECREF().

What I did in writing these two borrowed_ref_*.py was to do instead (3') spend a few hours figuring out how to exploit the issue until we get a segfault.  I did it for two examples, but what I'm definitely not going to do is spend N times a few hours for a large number N.  If python-dev people just fix the two examples, remove the crashers, and just forget about the issue, then well, the point is missed, but I'm not going to fight it.


Python tracker <report at bugs.python.org>

More information about the Python-bugs-list mailing list