summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2001-11-11 14:24:05 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2001-11-11 14:24:05 (GMT)
commit00ff10cae426a529ea9aa473e0ba9ab905cf7c81 (patch)
treef0f623e4347d8e821c86bd5e57dd275240aa4954 /Modules
parent20efa68be43b18413cc08089211b1351687084af (diff)
downloadcpython-00ff10cae426a529ea9aa473e0ba9ab905cf7c81.zip
cpython-00ff10cae426a529ea9aa473e0ba9ab905cf7c81.tar.gz
cpython-00ff10cae426a529ea9aa473e0ba9ab905cf7c81.tar.bz2
Patch in bug report #477700: Fix memory leaks in gdbm & curses.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_cursesmodule.c1
-rw-r--r--Modules/gdbmmodule.c7
2 files changed, 5 insertions, 3 deletions
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index bd544ba..e6f5ef1 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -2544,6 +2544,7 @@ init_curses(void)
/* Add a CObject for the C API */
c_api_object = PyCObject_FromVoidPtr((void *)PyCurses_API, NULL);
PyDict_SetItemString(d, "_C_API", c_api_object);
+ Py_DECREF(c_api_object);
/* For exception curses.error */
PyCursesError = PyErr_NewException("_curses.error", NULL, NULL);
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index 5f83a28..0190a9b 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -505,7 +505,7 @@ static PyMethodDef dbmmodule_methods[] = {
DL_EXPORT(void)
initgdbm(void) {
- PyObject *m, *d;
+ PyObject *m, *d, *s;
Dbmtype.ob_type = &PyType_Type;
m = Py_InitModule4("gdbm", dbmmodule_methods,
@@ -515,7 +515,8 @@ initgdbm(void) {
DbmError = PyErr_NewException("gdbm.error", NULL, NULL);
if (DbmError != NULL) {
PyDict_SetItemString(d, "error", DbmError);
- PyDict_SetItemString(d, "open_flags",
- PyString_FromString(dbmmodule_open_flags));
+ s = PyString_FromString(dbmmodule_open_flags);
+ PyDict_SetItemString(d, "open_flags", s);
+ Py_DECREF(s);
}
}