From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Thu, 12 Sep 2019 10:30:55 +0000 (-0700) Subject: closes bpo-38127: _ctypes: PyObject_IsSubclass() should be checked for failure. ... X-Git-Tag: v3.7.5rc1~69 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=197ac1ad1c03243c647aa9100edbaa16bebbb7e9;p=thirdparty%2FPython%2Fcpython.git closes bpo-38127: _ctypes: PyObject_IsSubclass() should be checked for failure. (GH-16011) An exception may occur during a PyObject_IsSubclass() call. (cherry picked from commit ea683deccc505a78bbbb1eb8c6a88b0835ad5151) Co-authored-by: Zackery Spytz --- diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index 8008a481e275..f186e5082afb 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -1094,7 +1094,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; }