]> granicus.if.org Git - python/commitdiff
closes bpo-38127: _ctypes: PyObject_IsSubclass() should be checked for failure. ...
authorZackery Spytz <zspytz@gmail.com>
Thu, 12 Sep 2019 10:09:32 +0000 (04:09 -0600)
committerBenjamin Peterson <benjamin@python.org>
Thu, 12 Sep 2019 10:09:32 +0000 (11:09 +0100)
An exception may occur during a PyObject_IsSubclass() call.

Modules/_ctypes/_ctypes.c

index d2f6391fa6dbd9df71926e6ec940f917776bb22b..16a0cfe8dd4dc7f374d2e3a28bf54f58743f25e3 100644 (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;
         }