diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2016-03-19 09:44:17 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2016-03-19 09:44:17 (GMT) |
commit | 3c3d7f4b99b1f62567592ef57216e07677f17d7f (patch) | |
tree | 8965a590a381f1f7a933edc306f5bd90968f2c91 /Modules/spwdmodule.c | |
parent | af4a1f20bafe5bb38215d8b2cb1470bdf8fe4625 (diff) | |
download | cpython-3c3d7f4b99b1f62567592ef57216e07677f17d7f.zip cpython-3c3d7f4b99b1f62567592ef57216e07677f17d7f.tar.gz cpython-3c3d7f4b99b1f62567592ef57216e07677f17d7f.tar.bz2 |
Issue #18787: spwd.getspnam() now raises a PermissionError if the user
doesn't have privileges.
Diffstat (limited to 'Modules/spwdmodule.c')
-rw-r--r-- | Modules/spwdmodule.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Modules/spwdmodule.c b/Modules/spwdmodule.c index 49324d5..e715d01 100644 --- a/Modules/spwdmodule.c +++ b/Modules/spwdmodule.c @@ -137,7 +137,10 @@ spwd_getspnam_impl(PyModuleDef *module, PyObject *arg) if (PyBytes_AsStringAndSize(bytes, &name, NULL) == -1) goto out; if ((p = getspnam(name)) == NULL) { - PyErr_SetString(PyExc_KeyError, "getspnam(): name not found"); + if (errno != 0) + PyErr_SetFromErrno(PyExc_OSError); + else + PyErr_SetString(PyExc_KeyError, "getspnam(): name not found"); goto out; } retval = mkspent(p); |