From: Georg Brandl Date: Fri, 16 May 2008 13:24:29 +0000 (+0000) Subject: Don't allow keyword arguments to reversed(). X-Git-Tag: v2.6b1~377 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ecf9091f59c31ca868dbf2d9626a9a697c1a084b;p=python Don't allow keyword arguments to reversed(). --- diff --git a/Lib/test/test_enumerate.py b/Lib/test/test_enumerate.py index a27846fbcf..074179cfe0 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 0bacc8346c..dfa738d503 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__"))