From: Christian Heimes Date: Thu, 13 Oct 2016 19:10:31 +0000 (+0200) Subject: Check return value of _PyDict_SetItemId() X-Git-Tag: v3.6.0b3~126 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5cade88ac1cf9241a8052c68646beac08aaa718e;p=python Check return value of _PyDict_SetItemId() --- diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 1960c1aa56..1021a75308 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -2848,13 +2848,16 @@ PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases) /* Set type.__module__ */ s = strrchr(spec->name, '.'); if (s != NULL) { + int err; modname = PyUnicode_FromStringAndSize( spec->name, (Py_ssize_t)(s - spec->name)); if (modname == NULL) { goto fail; } - _PyDict_SetItemId(type->tp_dict, &PyId___module__, modname); + err = _PyDict_SetItemId(type->tp_dict, &PyId___module__, modname); Py_DECREF(modname); + if (err != 0) + goto fail; } else { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "builtin type %.200s has no __module__ attribute",