Issue #27225: Fixed a reference leak in type_new when setting __new__ fails.
Original patch by Xiang Zhang.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index d78f298..cae5118 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -2430,7 +2430,11 @@
             Py_DECREF(type);
             return NULL;
         }
-        PyDict_SetItemString(dict, "__new__", tmp);
+        if (PyDict_SetItemString(dict, "__new__", tmp) < 0) {
+            Py_DECREF(tmp);
+            Py_DECREF(type);
+            return NULL;
+        }
         Py_DECREF(tmp);
     }