Issue #18408: type_new() and PyType_FromSpecWithBases() now raise MemoryError
on memory allocation failure
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 560c929..9b69021 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -2292,8 +2292,10 @@
             /* Silently truncate the docstring if it contains null bytes. */
             len = strlen(doc_str);
             tp_doc = (char *)PyObject_MALLOC(len + 1);
-            if (tp_doc == NULL)
+            if (tp_doc == NULL) {
+                PyErr_NoMemory();
                 goto error;
+            }
             memcpy(tp_doc, doc_str, len + 1);
             type->tp_doc = tp_doc;
         }
@@ -2496,8 +2498,10 @@
         if (slot->slot == Py_tp_doc) {
             size_t len = strlen(slot->pfunc)+1;
             char *tp_doc = PyObject_MALLOC(len);
-            if (tp_doc == NULL)
+            if (tp_doc == NULL) {
+                PyErr_NoMemory();
                 goto fail;
+            }
             memcpy(tp_doc, slot->pfunc, len);
             type->tp_doc = tp_doc;
         }