]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
closes bpo-38127: _ctypes: PyObject_IsSubclass() should be checked for failure. ...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 12 Sep 2019 10:30:55 +0000 (03:30 -0700)
committerGitHub <noreply@github.com>
Thu, 12 Sep 2019 10:30:55 +0000 (03:30 -0700)
An exception may occur during a PyObject_IsSubclass() call.
(cherry picked from commit ea683deccc505a78bbbb1eb8c6a88b0835ad5151)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Modules/_ctypes/_ctypes.c

index 8008a481e275922ea15ecc712a27e829c0f23ff7..f186e5082afbf289425ac844d5bacad966db4a05 100644 (file)
@@ -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;
         }