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); StgDictObject *v = PyObject_stgdict(value);
assert(v); /* Cannot be NULL for pointer or array objects */ 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); Py_INCREF(value);
return value; return value;
} }