From: Pablo Galindo Date: Tue, 2 Feb 2021 20:38:26 +0000 (+0000) Subject: bpo-43108: Fix a reference leak in the curses module (GH-24420) X-Git-Tag: v3.10.0a5~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bb739ec922c6992a2be38f9fd3c544c2cc322dde;p=thirdparty%2FPython%2Fcpython.git bpo-43108: Fix a reference leak in the curses module (GH-24420) --- diff --git a/Misc/NEWS.d/next/Library/2021-02-02-20-23-31.bpo-43108.lqcCZ6.rst b/Misc/NEWS.d/next/Library/2021-02-02-20-23-31.bpo-43108.lqcCZ6.rst new file mode 100644 index 000000000000..8e45640bceae --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-02-02-20-23-31.bpo-43108.lqcCZ6.rst @@ -0,0 +1 @@ +Fixed a reference leak in the :mod:`curses` module. Patch by Pablo Galindo diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 4fcedc5fc482..3df9f506052d 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -388,6 +388,7 @@ PyCurses_ConvertToString(PyCursesWindowObject *win, PyObject *obj, *bytes = obj; /* check for embedded null bytes */ if (PyBytes_AsStringAndSize(*bytes, &str, NULL) < 0) { + Py_DECREF(obj); return 0; } return 1; @@ -828,8 +829,9 @@ _curses_window_addstr_impl(PyCursesWindowObject *self, int group_left_1, #else strtype = PyCurses_ConvertToString(self, str, &bytesobj, NULL); #endif - if (strtype == 0) + if (strtype == 0) { return NULL; + } if (use_attr) { attr_old = getattrs(self->win); (void)wattrset(self->win,attr);