Add basic arg sanity checking to wrap_descr_get(). This is called
when Python code calls a descriptor's __get__ method. It should translate None to NULL in both argument positions, and insist that at least one of the argument positions is not NULL after this transformation.
This commit is contained in:
parent
ada859c111
commit
82ed25c15a
|
@ -3433,6 +3433,15 @@ wrap_descr_get(PyObject *self, PyObject *args, void *wrapped)
|
|||
|
||||
if (!PyArg_ParseTuple(args, "O|O", &obj, &type))
|
||||
return NULL;
|
||||
if (obj == Py_None)
|
||||
obj = NULL;
|
||||
if (type == Py_None)
|
||||
type = NULL;
|
||||
if (type == NULL &&obj == NULL) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"__get__(None, None) is invalid");
|
||||
return NULL;
|
||||
}
|
||||
return (*func)(self, obj, type);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue