Issue #15404: Refleak in PyMethodObject repr.
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 6df930f..b7d35ef 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -243,8 +243,10 @@
else {
klassname = PyObject_GetAttrString(klass, "__name__");
if (klassname == NULL) {
- if (!PyErr_ExceptionMatches(PyExc_AttributeError))
+ if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
+ Py_XDECREF(funcname);
return NULL;
+ }
PyErr_Clear();
}
else if (!PyUnicode_Check(klassname)) {