mirror of
https://github.com/python/cpython.git
synced 2025-07-28 05:34:31 +00:00
Reported by Klocwork #151.
v2 can be NULL if exception2 is NULL. I don't think that condition can happen, but I'm not sure it can't either. Now the code will protect against either being NULL.
This commit is contained in:
parent
04e39ec815
commit
a5e4f22bfb
1 changed files with 13 additions and 2 deletions
|
@ -1064,6 +1064,17 @@ PyErr_PrintEx(int set_sys_last_vars)
|
|||
}
|
||||
PyErr_Fetch(&exception2, &v2, &tb2);
|
||||
PyErr_NormalizeException(&exception2, &v2, &tb2);
|
||||
/* It should not be possible for exception2 or v2
|
||||
to be NULL. However PyErr_Display() can't
|
||||
tolerate NULLs, so just be safe. */
|
||||
if (exception2 == NULL) {
|
||||
exception2 = Py_None;
|
||||
Py_INCREF(exception2);
|
||||
}
|
||||
if (v2 == NULL) {
|
||||
v2 = Py_None;
|
||||
Py_INCREF(v2);
|
||||
}
|
||||
if (Py_FlushLine())
|
||||
PyErr_Clear();
|
||||
fflush(stdout);
|
||||
|
@ -1071,8 +1082,8 @@ PyErr_PrintEx(int set_sys_last_vars)
|
|||
PyErr_Display(exception2, v2, tb2);
|
||||
PySys_WriteStderr("\nOriginal exception was:\n");
|
||||
PyErr_Display(exception, v, tb);
|
||||
Py_XDECREF(exception2);
|
||||
Py_XDECREF(v2);
|
||||
Py_DECREF(exception2);
|
||||
Py_DECREF(v2);
|
||||
Py_XDECREF(tb2);
|
||||
}
|
||||
Py_XDECREF(result);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue