Issue #6697: Fix a crash if a keyword contains a surrogate

This commit is contained in:
Victor Stinner 2010-05-19 00:54:06 +00:00
parent 386fe71de1
commit 93b5513cf1
2 changed files with 23 additions and 6 deletions

View file

@ -1755,18 +1755,21 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
"keywords must be strings");
return cleanreturn(0, freelist);
}
/* check that _PyUnicode_AsString() result is not NULL */
ks = _PyUnicode_AsString(key);
for (i = 0; i < len; i++) {
if (!strcmp(ks, kwlist[i])) {
match = 1;
break;
if (ks != NULL) {
for (i = 0; i < len; i++) {
if (!strcmp(ks, kwlist[i])) {
match = 1;
break;
}
}
}
if (!match) {
PyErr_Format(PyExc_TypeError,
"'%s' is an invalid keyword "
"'%U' is an invalid keyword "
"argument for this function",
ks);
key);
return cleanreturn(0, freelist);
}
}