From 5967bf49285f1d4c086d0d97db64c07e79b482d2 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 17 Jul 2013 22:01:37 +0200 Subject: Issue #18408: Fix PyType_Ready(), handle _PyDict_SetItemId() failure --- Objects/typeobject.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Objects/typeobject.c b/Objects/typeobject.c index f311af8..c970ada 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -4256,11 +4256,15 @@ PyType_Ready(PyTypeObject *type) PyObject *doc = PyUnicode_FromString(type->tp_doc); if (doc == NULL) goto error; - _PyDict_SetItemId(type->tp_dict, &PyId___doc__, doc); + if (_PyDict_SetItemId(type->tp_dict, &PyId___doc__, doc) < 0) { + Py_DECREF(doc); + goto error; + } Py_DECREF(doc); } else { - _PyDict_SetItemId(type->tp_dict, - &PyId___doc__, Py_None); + if (_PyDict_SetItemId(type->tp_dict, + &PyId___doc__, Py_None) < 0) + goto error; } } -- cgit v0.12