mirror of
https://github.com/python/cpython.git
synced 2025-07-19 17:25:54 +00:00
Issue #8766: Initialize _warnings module before importing the first module.
Fix a crash if an empty directory called "encodings" exists in sys.path.
This commit is contained in:
parent
5b08b4d230
commit
7d79b8b771
4 changed files with 36 additions and 13 deletions
|
@ -116,7 +116,7 @@ get_filter(PyObject *category, PyObject *text, Py_ssize_t lineno,
|
|||
_filters = warnings_filters;
|
||||
}
|
||||
|
||||
if (!PyList_Check(_filters)) {
|
||||
if (_filters == NULL || !PyList_Check(_filters)) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
MODULE_NAME ".filters must be a list");
|
||||
return NULL;
|
||||
|
|
|
@ -265,13 +265,15 @@ Py_InitializeEx(int install_sigs)
|
|||
|
||||
_PyImportHooks_Init();
|
||||
|
||||
/* Initialize _warnings. */
|
||||
_PyWarnings_Init();
|
||||
|
||||
initfsencoding();
|
||||
|
||||
if (install_sigs)
|
||||
initsigs(); /* Signal handling stuff, including initintr() */
|
||||
|
||||
/* Initialize warnings. */
|
||||
_PyWarnings_Init();
|
||||
if (PySys_HasWarnOptions()) {
|
||||
PyObject *warnings_module = PyImport_ImportModule("warnings");
|
||||
if (!warnings_module)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue