]> granicus.if.org Git - python/commitdiff
Patch in bug report #477700: Fix memory leaks in gdbm & curses.
authorMartin v. Löwis <martin@v.loewis.de>
Sun, 11 Nov 2001 14:24:05 +0000 (14:24 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Sun, 11 Nov 2001 14:24:05 +0000 (14:24 +0000)
Modules/_cursesmodule.c
Modules/gdbmmodule.c

index bd544ba342cc3a8bf438fa3724349f91b8794ba0..e6f5ef17e4d36b96cec200869b5a7d5f8a29af82 100644 (file)
@@ -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);
index 5f83a28f14bb16d460ce70992326d61b8976d2db..0190a9b38f603294edb118e45df95ec7c664bcda 100644 (file)
@@ -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);
     }
 }