Check return result from Py_InitModule*(). This API can fail.
Probably should be backported.
diff --git a/PC/_subprocess.c b/PC/_subprocess.c
index 8ed4899..b675b88 100644
--- a/PC/_subprocess.c
+++ b/PC/_subprocess.c
@@ -553,6 +553,8 @@
sp_handle_as_number.nb_int = (unaryfunc) sp_handle_as_int;
m = Py_InitModule("_subprocess", sp_functions);
+ if (m == NULL)
+ return;
d = PyModule_GetDict(m);
/* constants */
diff --git a/PC/_winreg.c b/PC/_winreg.c
index 34e4f68..965acf1 100644
--- a/PC/_winreg.c
+++ b/PC/_winreg.c
@@ -1459,6 +1459,8 @@
{
PyObject *m, *d;
m = Py_InitModule3("_winreg", winreg_methods, module_doc);
+ if (m == NULL)
+ return;
d = PyModule_GetDict(m);
PyHKEY_Type.ob_type = &PyType_Type;
PyHKEY_Type.tp_doc = PyHKEY_doc;
diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c
index 84cf0c1..4453023 100755
--- a/PC/msvcrtmodule.c
+++ b/PC/msvcrtmodule.c
@@ -221,6 +221,8 @@
initmsvcrt(void)
{
PyObject *m = Py_InitModule("msvcrt", msvcrt_functions);
+ if (m == NULL)
+ return;
PyObject *d = PyModule_GetDict(m);
/* constants for the locking() function's mode argument */
diff --git a/PC/winsound.c b/PC/winsound.c
index b94b322..81e3917 100644
--- a/PC/winsound.c
+++ b/PC/winsound.c
@@ -220,6 +220,8 @@
PyObject *module = Py_InitModule3("winsound",
sound_methods,
sound_module_doc);
+ if (module == NULL)
+ return;
PyObject *dict = PyModule_GetDict(module);
ADD_DEFINE(SND_ASYNC);