Prevent crash on shutdown which can occur if we are finalizing

and the module dict has been cleared already and some object
raises a warning (like in a __del__).

Will backport.
This commit is contained in:
Neal Norwitz 2007-01-05 05:25:22 +00:00
parent 11a70c3c96
commit 72cd02c041
2 changed files with 5 additions and 1 deletions

View File

@ -12,6 +12,9 @@ What's New in Python 2.6 alpha 1?
Core and builtins
-----------------
- Prevent seg fault on shutdown which could occur if an object
raised a warning.
- Bug #1566280: Explicitly invoke threading._shutdown from Py_Main,
to avoid relying on atexit.

View File

@ -640,7 +640,8 @@ PyErr_WarnEx(PyObject *category, const char *message, Py_ssize_t stack_level)
if (warnings_module != NULL) {
dict = PyModule_GetDict(warnings_module);
func = PyDict_GetItemString(dict, "warn");
if (dict != NULL)
func = PyDict_GetItemString(dict, "warn");
}
if (func == NULL) {
PySys_WriteStderr("warning: %s\n", message);