]> granicus.if.org Git - python/commitdiff
Issue #18408: Fix PyType_Ready(), handle _PyDict_SetItemId() failure
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 17 Jul 2013 20:01:37 +0000 (22:01 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 17 Jul 2013 20:01:37 +0000 (22:01 +0200)
Objects/typeobject.c

index f311af8f25bb93ea8276344c5b6806fa6aa2d077..c970ada1df0802b2a10031f3c2df225e5256aad9 100644 (file)
@@ -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;
         }
     }