diff options
-rw-r--r-- | Objects/typeobject.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 760ef95..2046972 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -4595,8 +4595,10 @@ slot_tp_call(PyObject *self, PyObject *args, PyObject *kwds) the object returned for __call__ has __call__ itself defined upon it. This can be an infinite recursion if you set __call__ in a class to an instance of it. */ - if (Py_EnterRecursiveCall(" in __call__")) + if (Py_EnterRecursiveCall(" in __call__")) { + Py_DECREF(meth); return NULL; + } res = PyObject_Call(meth, args, kwds); Py_LeaveRecursiveCall(); |