Fix PR117. The error message is "keywords must be strings". Perhaps

not as descriptive as what Barry suggests, but this also catches the
(in my opinion important) case where some other C code besides apply()
constructs a kwdict that doesn't have the right format.  All the other
possibilities of getting it wrong (non-dict, wrong keywords etc) are
already caught so this makes sense to check here.
This commit is contained in:
Guido van Rossum 1999-10-26 00:12:20 +00:00
parent e1ada50559
commit 25da5bebd8
1 changed files with 5 additions and 0 deletions

View File

@ -482,6 +482,11 @@ eval_code2(co, globals, locals,
PyObject *keyword = kws[2*i];
PyObject *value = kws[2*i + 1];
int j;
if (keyword == NULL || !PyString_Check(keyword)) {
PyErr_SetString(PyExc_TypeError,
"keywords must be strings");
goto fail;
}
/* XXX slow -- speed up using dictionary? */
for (j = 0; j < co->co_argcount; j++) {
PyObject *nm = PyTuple_GET_ITEM(