[Python-Dev] [Python-checkins] cpython (3.3): Reject float as uid or gid. (original) (raw)

Eric V. Smith eric at trueblade.com
Mon Feb 11 00:06:35 CET 2013


On 2/10/2013 4:29 PM, serhiy.storchaka wrote:

http://hg.python.org/cpython/rev/4ef048f4834e changeset: 82147:4ef048f4834e branch: 3.3 parent: 82145:b322655a4a88 user: Serhiy Storchaka <storchaka at gmail.com> date: Sun Feb 10 23:28:02 2013 +0200 summary: Reject float as uid or gid. A regression was introduced in the commit for issue issue #4591.

files: Modules/posixmodule.c | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -437,7 +437,13 @@ PyUidConverter(PyObject *obj, void *p) { int overflow; - long result = PyLongAsLongAndOverflow(obj, &overflow); + long result; + if (PyFloatCheck(obj)) { + PyErrSetString(PyExcTypeError, + "integer argument expected, got float"); + return 0; + } + result = PyLongAsLongAndOverflow(obj, &overflow); if (overflow < 0) goto OverflowDown; if (!overflow && result == -1) {

Instead of special-casing float, isn't using index the preferred way to do this?

-- Eric.



More information about the Python-Dev mailing list