Issue #4873: Fix resource leaks in error cases of pwd and grp.
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 @@
if (PyErr_Occurred()) {
Py_DECREF(v);
- Py_DECREF(w);
return NULL;
}
@@ -139,6 +138,7 @@
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 @@
if (v == NULL || PyList_Append(d, v) != 0) {
Py_XDECREF(v);
Py_DECREF(d);
+ endpwent();
return NULL;
}
Py_DECREF(v);