From df40b623904c78847bbe24b9604a5b0522eafdb9 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Mon, 9 May 2016 00:11:59 +0300 Subject: Issue #25745: Fixed leaking a userptr in curses panel destructor. --- Misc/NEWS | 2 ++ Modules/_curses_panel.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/Misc/NEWS b/Misc/NEWS index f9bb8ef..d41910a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -116,6 +116,8 @@ Core and Builtins Library ------- +- Issue #25745: Fixed leaking a userptr in curses panel destructor. + - Issue #26881: The modulefinder module now supports extended opcode arguments. - Issue #23815: Fixed crashes related to directly created instances of types in diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c index c77e614..228f497 100644 --- a/Modules/_curses_panel.c +++ b/Modules/_curses_panel.c @@ -220,6 +220,11 @@ PyCursesPanel_New(PANEL *pan, PyCursesWindowObject *wo) static void PyCursesPanel_Dealloc(PyCursesPanelObject *po) { + PyObject *obj = (PyObject *) panel_userptr(po->pan); + if (obj) { + (void)set_panel_userptr(po->pan, NULL); + Py_DECREF(obj); + } (void)del_panel(po->pan); if (po->wo != NULL) { Py_DECREF(po->wo); -- cgit v0.12