From 168a05331ed1762f75a2d91ffd6d5b81e63d4437 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Fri, 9 Sep 2016 00:13:35 +0200 Subject: Add error checking to PyInit_pyexpact The module initializer of the pyexpat module failed to check the return value of PySys_GetObject() for NULL. CID 982779 --- Modules/pyexpat.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'Modules/pyexpat.c') diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index dc97e9d2bf..b19b7be160 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -1701,7 +1701,15 @@ MODULE_INITFUNC(void) PyModule_AddStringConstant(m, "native_encoding", "UTF-8"); sys_modules = PySys_GetObject("modules"); + if (sys_modules == NULL) { + Py_DECREF(m); + return NULL; + } d = PyModule_GetDict(m); + if (d == NULL) { + Py_DECREF(m); + return NULL; + } errors_module = PyDict_GetItem(d, errmod_name); if (errors_module == NULL) { errors_module = PyModule_New(MODULE_NAME ".errors"); @@ -1722,9 +1730,11 @@ MODULE_INITFUNC(void) } } Py_DECREF(modelmod_name); - if (errors_module == NULL || model_module == NULL) + if (errors_module == NULL || model_module == NULL) { /* Don't core dump later! */ + Py_DECREF(m); return NULL; + } #if XML_COMBINED_VERSION > 19505 { -- cgit v1.2.1