[Python-checkins] cpython (merge 3.3 -> default): Reject float as uid or gid.

serhiy.storchaka python-checkins at python.org
Sun Feb 10 22:29:30 CET 2013


http://hg.python.org/cpython/rev/3fdcffdfd3e6
changeset:   82148:3fdcffdfd3e6
parent:      82146:94256de0aff0
parent:      82147:4ef048f4834e
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Sun Feb 10 23:28:33 2013 +0200
summary:
  Reject float as uid or gid.
A regression was introduced in the commit for 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
@@ -406,7 +406,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) {
@@ -454,7 +460,13 @@
 _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) {

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list