Ensure super() lookup of descriptor from classmethod works (SF #743627)
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index f26ddd6..209ec32 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -5537,7 +5537,14 @@
Py_INCREF(res);
f = res->ob_type->tp_descr_get;
if (f != NULL) {
- tmp = f(res, su->obj,
+ tmp = f(res,
+ /* Only pass 'obj' param if
+ this is instance-mode super
+ (See SF ID #743627)
+ */
+ (su->obj==su->obj_type
+ ? (PyObject *)NULL
+ : su->obj),
(PyObject *)starttype);
Py_DECREF(res);
res = tmp;