Kaydet (Commit) 18e7083c authored tarafından Tim Peters's avatar Tim Peters

SF bug 681122: Built-in function dir() causes refcount leak in baseclasses.

merge_class_dict():  This was missing a decref.

Bugfix candidate.
üst 6ee04805
...@@ -1656,12 +1656,15 @@ merge_class_dict(PyObject* dict, PyObject* aclass) ...@@ -1656,12 +1656,15 @@ merge_class_dict(PyObject* dict, PyObject* aclass)
PyErr_Clear(); PyErr_Clear();
else { else {
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
int status;
PyObject *base = PySequence_GetItem(bases, i); PyObject *base = PySequence_GetItem(bases, i);
if (base == NULL) { if (base == NULL) {
Py_DECREF(bases); Py_DECREF(bases);
return -1; return -1;
} }
if (merge_class_dict(dict, base) < 0) { status = merge_class_dict(dict, base);
Py_DECREF(base);
if (status < 0) {
Py_DECREF(bases); Py_DECREF(bases);
return -1; return -1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment