summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2010-08-08 21:37:51 +0000
committerAntoine Pitrou <solipsis@pitrou.net>2010-08-08 21:37:51 +0000
commite61ff01833d5e8fb2e026ffb414175b1688be4b6 (patch)
tree32d11a2f83092bac903cf8bf97cfb982d130e650 /Python
parent2d0d22ca2a3a801055b7ebee92f92d133dea0e70 (diff)
downloadcpython-e61ff01833d5e8fb2e026ffb414175b1688be4b6.tar.gz
sys.stderr and sys.excepthook can be None at interpreter shutdown,
in which case display the appropriate error message. (part of #5319)
Diffstat (limited to 'Python')
-rw-r--r--Python/pythonrun.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index db5d0a7a18..7f63ae108c 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -1149,7 +1149,7 @@ PyErr_PrintEx(int set_sys_last_vars)
PySys_SetObject("last_traceback", tb);
}
hook = PySys_GetObject("excepthook");
- if (hook) {
+ if (hook && hook != Py_None) {
PyObject *args = PyTuple_Pack(3,
exception, v, tb ? tb : Py_None);
PyObject *result = PyEval_CallObject(hook, args);
@@ -1199,7 +1199,7 @@ PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb)
int err = 0;
PyObject *f = PySys_GetObject("stderr");
Py_INCREF(value);
- if (f == NULL)
+ if (f == NULL || f == Py_None)
fprintf(stderr, "lost sys.stderr\n");
else {
if (Py_FlushLine())