From 55e2238272daf0a6b585cf6314abb9fdf768bbde Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Mon, 11 Feb 2013 20:32:47 +0200 Subject: Raise KeyError instead of OverflowError when getpwuid's argument is out of uid_t range. --- Modules/pwdmodule.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Modules/pwdmodule.c') diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c index 632ffe3be8..285fd9c984 100644 --- a/Modules/pwdmodule.c +++ b/Modules/pwdmodule.c @@ -106,8 +106,12 @@ pwd_getpwuid(PyObject *self, PyObject *args) { uid_t uid; struct passwd *p; - if (!PyArg_ParseTuple(args, "O&:getpwuid", _Py_Uid_Converter, &uid)) + if (!PyArg_ParseTuple(args, "O&:getpwuid", _Py_Uid_Converter, &uid)) { + if (PyErr_ExceptionMatches(PyExc_OverflowError)) + PyErr_Format(PyExc_KeyError, + "getpwuid(): uid not found"); return NULL; + } if ((p = getpwuid(uid)) == NULL) { PyObject *uid_obj = _PyLong_FromUid(uid); if (uid_obj == NULL) -- cgit v1.2.1