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 <storch...@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 @@ > _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) {
Instead of special-casing float, isn't using __index__ the preferred way to do this? -- Eric. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com