From: Tim Peters Date: Wed, 5 Feb 2003 19:35:19 +0000 (+0000) Subject: SF bug 681122: Built-in function dir() causes refcount leak in baseclasses. X-Git-Tag: v2.3c1~2020 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=18e7083cda52fec41ee5583bd04a916d4a6330f7;p=python SF bug 681122: Built-in function dir() causes refcount leak in baseclasses. merge_class_dict(): This was missing a decref. Bugfix candidate. --- diff --git a/Objects/object.c b/Objects/object.c index e44edca96c..150caac0c6 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1656,12 +1656,15 @@ merge_class_dict(PyObject* dict, PyObject* aclass) PyErr_Clear(); else { for (i = 0; i < n; i++) { + int status; PyObject *base = PySequence_GetItem(bases, i); if (base == NULL) { Py_DECREF(bases); return -1; } - if (merge_class_dict(dict, base) < 0) { + status = merge_class_dict(dict, base); + Py_DECREF(base); + if (status < 0) { Py_DECREF(bases); return -1; }