[Python-checkins] bpo-43108: Fix a reference leak in the curses module (GH-24420)

miss-islington webhook-mailer at python.org
Wed Feb 3 08:41:18 EST 2021


https://github.com/python/cpython/commit/12bfc595c49ef9681265407fe33b53b7a3623abc
commit: 12bfc595c49ef9681265407fe33b53b7a3623abc
branch: 3.9
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2021-02-03T05:41:09-08:00
summary:

bpo-43108: Fix a reference leak in the curses module (GH-24420)

(cherry picked from commit bb739ec922c6992a2be38f9fd3c544c2cc322dde)

Co-authored-by: Pablo Galindo <Pablogsal at gmail.com>

files:
A Misc/NEWS.d/next/Library/2021-02-02-20-23-31.bpo-43108.lqcCZ6.rst
M Modules/_cursesmodule.c

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 0000000000000..8e45640bceae1
--- /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 d129248e36347..c84f8382274b5 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -365,6 +365,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;
@@ -679,8 +680,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);



More information about the Python-checkins mailing list