From: Barry Warsaw Date: Wed, 27 Jan 1999 18:04:05 +0000 (+0000) Subject: initerrno(): Nailed a not-so-tiny memory leak. The de dictionary is X-Git-Tag: v1.5.2b2~256 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=105906ff6ed975f46599aac1f48c20efc508dbd8;p=python initerrno(): Nailed a not-so-tiny memory leak. The de dictionary is put into the module dict, but is never DECREF'd in this function, so it and all its contents leak. --- diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c index f18a6555ba..ee0aaf1d92 100644 --- a/Modules/errnomodule.c +++ b/Modules/errnomodule.c @@ -101,7 +101,7 @@ initerrno() m = Py_InitModule3("errno", errno_methods, errno__doc__); d = PyModule_GetDict(m); de = PyDict_New(); - if (de == NULL || PyDict_SetItemString(d,"errorcode",de)) + if (de == NULL || PyDict_SetItemString(d, "errorcode", de)) Py_FatalError("can't initialize errno module"); /* Macro so I don't have to edit each and every line below... */ @@ -824,4 +824,5 @@ initerrno() inscode(d, ds, de, "WSAN", WSAN, "Error WSAN"); #endif + Py_DECREF(de); }