cpython (2.7): Issue #25961: Fixed compilation error and a leak in type constructor.
https://hg.python.org/cpython/rev/57fea6f75ac2 changeset: 99729:57fea6f75ac2 branch: 2.7 parent: 99726:29cc6b2f9d28 user: Serhiy Storchaka <storchaka@gmail.com> date: Thu Dec 31 12:03:14 2015 +0200 summary: Issue #25961: Fixed compilation error and a leak in type constructor. files: Objects/typeobject.c | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Objects/typeobject.c b/Objects/typeobject.c --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -2342,12 +2342,17 @@ type->tp_as_mapping = &et->as_mapping; type->tp_as_buffer = &et->as_buffer; type->tp_name = PyString_AS_STRING(name); - if (!type->tp_name) - goto error; + if (!type->tp_name) { + Py_DECREF(bases); + Py_DECREF(type); + return NULL; + } if (strlen(type->tp_name) != (size_t)PyString_GET_SIZE(name)) { PyErr_SetString(PyExc_ValueError, "type name must not contain null characters"); - goto error; + Py_DECREF(bases); + Py_DECREF(type); + return NULL; } /* Set tp_base and tp_bases */ @@ -2369,8 +2374,10 @@ tmp = PyDict_GetItemString(tmp, "__name__"); if (tmp != NULL) { if (PyDict_SetItemString(dict, "__module__", - tmp) < 0) + tmp) < 0) { + Py_DECREF(type); return NULL; + } } } } -- Repository URL: https://hg.python.org/cpython
participants (1)
-
serhiy.storchaka