diff options
author | Georg Brandl <georg@python.org> | 2008-05-16 13:24:29 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-05-16 13:24:29 (GMT) |
commit | ecf9091f59c31ca868dbf2d9626a9a697c1a084b (patch) | |
tree | 548e81e054f8df68f4168954fe5981e7791f96e9 | |
parent | 88107dafefd374f1eb743b5a2d74aab13e7aa9f7 (diff) | |
download | cpython-ecf9091f59c31ca868dbf2d9626a9a697c1a084b.zip cpython-ecf9091f59c31ca868dbf2d9626a9a697c1a084b.tar.gz cpython-ecf9091f59c31ca868dbf2d9626a9a697c1a084b.tar.bz2 |
Don't allow keyword arguments to reversed().
-rw-r--r-- | Lib/test/test_enumerate.py | 2 | ||||
-rw-r--r-- | Objects/enumobject.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/Lib/test/test_enumerate.py b/Lib/test/test_enumerate.py index a27846f..074179c 100644 --- a/Lib/test/test_enumerate.py +++ b/Lib/test/test_enumerate.py @@ -138,6 +138,8 @@ class TestReversed(unittest.TestCase): for data in 'abc', range(5), tuple(enumerate('abc')), A(), xrange(1,17,5): self.assertEqual(list(data)[::-1], list(reversed(data))) self.assertRaises(TypeError, reversed, {}) + # don't allow keyword arguments + self.assertRaises(TypeError, reversed, [], a=1) def test_xrange_optimization(self): x = xrange(1) diff --git a/Objects/enumobject.c b/Objects/enumobject.c index 0bacc83..dfa738d 100644 --- a/Objects/enumobject.c +++ b/Objects/enumobject.c @@ -224,7 +224,10 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds) PyObject *seq; reversedobject *ro; - if (!PyArg_UnpackTuple(args, "reversed", 1, 1, &seq)) + if (type == &PyReversed_Type && !_PyArg_NoKeywords("reversed()", kwds)) + return NULL; + + if (!PyArg_UnpackTuple(args, "reversed", 1, 1, &seq) ) return NULL; if (PyObject_HasAttrString(seq, "__reversed__")) |