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
This commit is contained in:
parent
6782b14bcb
commit
7a5457b687
|
@ -1701,7 +1701,15 @@ MODULE_INITFUNC(void)
|
||||||
PyModule_AddStringConstant(m, "native_encoding", "UTF-8");
|
PyModule_AddStringConstant(m, "native_encoding", "UTF-8");
|
||||||
|
|
||||||
sys_modules = PySys_GetObject("modules");
|
sys_modules = PySys_GetObject("modules");
|
||||||
|
if (sys_modules == NULL) {
|
||||||
|
Py_DECREF(m);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
d = PyModule_GetDict(m);
|
d = PyModule_GetDict(m);
|
||||||
|
if (d == NULL) {
|
||||||
|
Py_DECREF(m);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
errors_module = PyDict_GetItem(d, errmod_name);
|
errors_module = PyDict_GetItem(d, errmod_name);
|
||||||
if (errors_module == NULL) {
|
if (errors_module == NULL) {
|
||||||
errors_module = PyModule_New(MODULE_NAME ".errors");
|
errors_module = PyModule_New(MODULE_NAME ".errors");
|
||||||
|
@ -1722,9 +1730,11 @@ MODULE_INITFUNC(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Py_DECREF(modelmod_name);
|
Py_DECREF(modelmod_name);
|
||||||
if (errors_module == NULL || model_module == NULL)
|
if (errors_module == NULL || model_module == NULL) {
|
||||||
/* Don't core dump later! */
|
/* Don't core dump later! */
|
||||||
|
Py_DECREF(m);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#if XML_COMBINED_VERSION > 19505
|
#if XML_COMBINED_VERSION > 19505
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue