summaryrefslogtreecommitdiffstats
path: root/Modules/_curses_panel.c
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-05-08 21:11:59 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2016-05-08 21:11:59 (GMT)
commitdf40b623904c78847bbe24b9604a5b0522eafdb9 (patch)
tree540a9469dd19118f3f2ac492afe282f2ffc7f830 /Modules/_curses_panel.c
parent02d9f5e5b2ee2662cb6776ebdafa2f3169452e41 (diff)
downloadcpython-df40b623904c78847bbe24b9604a5b0522eafdb9.zip
cpython-df40b623904c78847bbe24b9604a5b0522eafdb9.tar.gz
cpython-df40b623904c78847bbe24b9604a5b0522eafdb9.tar.bz2
Issue #25745: Fixed leaking a userptr in curses panel destructor.
Diffstat (limited to 'Modules/_curses_panel.c')
-rw-r--r--Modules/_curses_panel.c5
1 files changed, 5 insertions, 0 deletions
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);