Commit 00ff10ca authored by Martin v. Löwis's avatar Martin v. Löwis

Patch in bug report #477700: Fix memory leaks in gdbm & curses.

parent 20efa68b
...@@ -2544,6 +2544,7 @@ init_curses(void) ...@@ -2544,6 +2544,7 @@ init_curses(void)
/* Add a CObject for the C API */ /* Add a CObject for the C API */
c_api_object = PyCObject_FromVoidPtr((void *)PyCurses_API, NULL); c_api_object = PyCObject_FromVoidPtr((void *)PyCurses_API, NULL);
PyDict_SetItemString(d, "_C_API", c_api_object); PyDict_SetItemString(d, "_C_API", c_api_object);
Py_DECREF(c_api_object);
/* For exception curses.error */ /* For exception curses.error */
PyCursesError = PyErr_NewException("_curses.error", NULL, NULL); PyCursesError = PyErr_NewException("_curses.error", NULL, NULL);
......
...@@ -505,7 +505,7 @@ static PyMethodDef dbmmodule_methods[] = { ...@@ -505,7 +505,7 @@ static PyMethodDef dbmmodule_methods[] = {
DL_EXPORT(void) DL_EXPORT(void)
initgdbm(void) { initgdbm(void) {
PyObject *m, *d; PyObject *m, *d, *s;
Dbmtype.ob_type = &PyType_Type; Dbmtype.ob_type = &PyType_Type;
m = Py_InitModule4("gdbm", dbmmodule_methods, m = Py_InitModule4("gdbm", dbmmodule_methods,
...@@ -515,7 +515,8 @@ initgdbm(void) { ...@@ -515,7 +515,8 @@ initgdbm(void) {
DbmError = PyErr_NewException("gdbm.error", NULL, NULL); DbmError = PyErr_NewException("gdbm.error", NULL, NULL);
if (DbmError != NULL) { if (DbmError != NULL) {
PyDict_SetItemString(d, "error", DbmError); PyDict_SetItemString(d, "error", DbmError);
PyDict_SetItemString(d, "open_flags", s = PyString_FromString(dbmmodule_open_flags);
PyString_FromString(dbmmodule_open_flags)); PyDict_SetItemString(d, "open_flags", s);
Py_DECREF(s);
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment