diff options
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r-- | Objects/unicodeobject.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 94c67c84df..af427dd118 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -6688,12 +6688,15 @@ unicode_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) return NULL; assert(PyUnicode_Check(tmp)); pnew = (PyUnicodeObject *) type->tp_alloc(type, n = tmp->length); - if (pnew == NULL) + if (pnew == NULL) { + Py_DECREF(tmp); return NULL; + } pnew->str = PyMem_NEW(Py_UNICODE, n+1); if (pnew->str == NULL) { _Py_ForgetReference((PyObject *)pnew); PyObject_Del(pnew); + Py_DECREF(tmp); return PyErr_NoMemory(); } Py_UNICODE_COPY(pnew->str, tmp->str, n+1); |