From: Serhiy Storchaka Date: Sun, 10 Feb 2013 21:28:02 +0000 (+0200) Subject: Reject float as uid or gid. X-Git-Tag: v3.3.1rc1~187 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b4621899212f5f661ef5c25cd0b71f8b1ab39028;p=thirdparty%2FPython%2Fcpython.git Reject float as uid or gid. A regression was introduced in the commit for issue issue #4591. --- diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 7e36df5da6a2..91352d4d4c48 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -437,7 +437,13 @@ int _Py_Uid_Converter(PyObject *obj, void *p) { int overflow; - long result = PyLong_AsLongAndOverflow(obj, &overflow); + long result; + if (PyFloat_Check(obj)) { + PyErr_SetString(PyExc_TypeError, + "integer argument expected, got float"); + return 0; + } + result = PyLong_AsLongAndOverflow(obj, &overflow); if (overflow < 0) goto OverflowDown; if (!overflow && result == -1) { @@ -485,7 +491,13 @@ int _Py_Gid_Converter(PyObject *obj, void *p) { int overflow; - long result = PyLong_AsLongAndOverflow(obj, &overflow); + long result; + if (PyFloat_Check(obj)) { + PyErr_SetString(PyExc_TypeError, + "integer argument expected, got float"); + return 0; + } + result = PyLong_AsLongAndOverflow(obj, &overflow); if (overflow < 0) goto OverflowDown; if (!overflow && result == -1) {