From: Martin v. Löwis Date: Fri, 29 May 2009 15:58:08 +0000 (+0000) Subject: Issue #4873: Fix resource leaks in error cases of pwd and grp. X-Git-Tag: v2.7a1~1077 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4f16d3b4ac92c93b2d8297cf62b1820603b67b55;p=python Issue #4873: Fix resource leaks in error cases of pwd and grp. --- diff --git a/Misc/NEWS b/Misc/NEWS index a0547892d7..7e53d2499c 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -1067,6 +1067,8 @@ C-API Extension Modules ----------------- +- Issue #4873: Fix resource leaks in error cases of pwd and grp. + - Issue #4751: For hashlib algorithms provided by OpenSSL, the Python GIL is now released during computation on data lengths >= 2048 bytes. diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c index e5b9f4708c..ffb451e174 100644 --- a/Modules/grpmodule.c +++ b/Modules/grpmodule.c @@ -76,7 +76,6 @@ mkgrent(struct group *p) if (PyErr_Occurred()) { Py_DECREF(v); - Py_DECREF(w); return NULL; } @@ -139,6 +138,7 @@ grp_getgrall(PyObject *self, PyObject *ignore) if (v == NULL || PyList_Append(d, v) != 0) { Py_XDECREF(v); Py_DECREF(d); + endgrent(); return NULL; } Py_DECREF(v); diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c index 9e01f48757..a271c5a82e 100644 --- a/Modules/pwdmodule.c +++ b/Modules/pwdmodule.c @@ -160,6 +160,7 @@ pwd_getpwall(PyObject *self) if (v == NULL || PyList_Append(d, v) != 0) { Py_XDECREF(v); Py_DECREF(d); + endpwent(); return NULL; } Py_DECREF(v);