closes bpo-38127: _ctypes: PyObject_IsSubclass() should be checked for failure. (GH-16011)

An exception may occur during a PyObject_IsSubclass() call.
This commit is contained in:
Zackery Spytz 2019-09-12 04:09:32 -06:00 committed by Benjamin Peterson
parent 954900a3f9
commit ea683deccc

View file

@ -1168,7 +1168,11 @@ PyCPointerType_from_param(PyObject *type, PyObject *value)
*/
StgDictObject *v = PyObject_stgdict(value);
assert(v); /* Cannot be NULL for pointer or array objects */
if (PyObject_IsSubclass(v->proto, typedict->proto)) {
int ret = PyObject_IsSubclass(v->proto, typedict->proto);
if (ret < 0) {
return NULL;
}
if (ret) {
Py_INCREF(value);
return value;
}