From: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> Date: Wed, 20 Jul 2022 06:23:30 +0000 (+0530) Subject: GH-90699: fix ref counting of static immortal strings (gh-94850) X-Git-Tag: v3.12.0a1~911 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1834133e66d95a143c9df5f068b3109927aefd65;p=thirdparty%2FPython%2Fcpython.git GH-90699: fix ref counting of static immortal strings (gh-94850) --- diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst b/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst new file mode 100644 index 000000000000..795f4df987eb --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-07-14-10-07-53.gh-issue-90699.x3aG9m.rst @@ -0,0 +1 @@ +Fix reference counting bug in :meth:`bool.__repr__`. Patch by Kumar Aditya. diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index 89094d66f383..3369694653fd 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -2244,7 +2244,7 @@ _textiowrapper_readline(textio *self, Py_ssize_t limit) Py_CLEAR(chunks); } if (line == NULL) { - line = &_Py_STR(empty); + line = Py_NewRef(&_Py_STR(empty)); } return line; diff --git a/Objects/boolobject.c b/Objects/boolobject.c index ff7218760ab3..8a20e368d4a4 100644 --- a/Objects/boolobject.c +++ b/Objects/boolobject.c @@ -9,7 +9,8 @@ static PyObject * bool_repr(PyObject *self) { - return self == Py_True ? &_Py_ID(True) : &_Py_ID(False); + PyObject *res = self == Py_True ? &_Py_ID(True) : &_Py_ID(False); + return Py_NewRef(res); } /* Function to return a bool from a C long */