summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2009-05-29 15:58:08 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2009-05-29 15:58:08 (GMT)
commit4f16d3b4ac92c93b2d8297cf62b1820603b67b55 (patch)
tree1f93327ab0944eaf51710bfe7c3d3bf208f011fe
parent3e3eace7d75b748254589b76970367588d320199 (diff)
downloadcpython-4f16d3b4ac92c93b2d8297cf62b1820603b67b55.zip
cpython-4f16d3b4ac92c93b2d8297cf62b1820603b67b55.tar.gz
cpython-4f16d3b4ac92c93b2d8297cf62b1820603b67b55.tar.bz2
Issue #4873: Fix resource leaks in error cases of pwd and grp.
-rw-r--r--Misc/NEWS2
-rw-r--r--Modules/grpmodule.c2
-rw-r--r--Modules/pwdmodule.c1
3 files changed, 4 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index a054789..7e53d24 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 e5b9f47..ffb451e 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 9e01f48..a271c5a 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);