Issue #29327: Fixed a crash when pass the iterable keyword argument to sorted().

This commit is contained in:
Serhiy Storchaka 2017-01-20 08:35:18 +02:00
commit 299dc239fe
3 changed files with 15 additions and 1 deletions

View file

@ -2128,7 +2128,7 @@ builtin_sorted(PyObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwna
{
PyObject *newlist, *v, *seq, *keyfunc=NULL;
PyObject *callable;
static const char * const kwlist[] = {"iterable", "key", "reverse", 0};
static const char * const kwlist[] = {"", "key", "reverse", 0};
/* args 1-3 should match listsort in Objects/listobject.c */
static _PyArg_Parser parser = {"O|Oi:sorted", kwlist, 0};
int reverse;
@ -2147,6 +2147,7 @@ builtin_sorted(PyObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwna
return NULL;
}
assert(nargs >= 1);
v = _PyObject_FastCallKeywords(callable, args + 1, nargs - 1, kwnames);
Py_DECREF(callable);
if (v == NULL) {