From: Christian Heimes Date: Thu, 8 Sep 2016 22:13:35 +0000 (+0200) Subject: Add error checking to PyInit_pyexpact X-Git-Tag: v3.6.0b1~239 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7a5457b6878db61910c81017d10579edb7c91512;p=thirdparty%2FPython%2Fcpython.git 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 --- diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index dc97e9d2bf39..b19b7be16053 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 {