]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Backport:
authorGuido van Rossum <guido@python.org>
Thu, 10 Apr 2003 20:30:18 +0000 (20:30 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 10 Apr 2003 20:30:18 +0000 (20:30 +0000)
PyErr_NormalizeException(): in the type==NULL test, we should simply
return.  Setting an exception can mess with the exception state, and
continuing is definitely wrong (since type is dereferenced later on).
Some code that calls this seems to be prepared for a NULL exception
type, so let's be safe rather than sorry and simply assume there's
nothing to normalize in this case.

Python/errors.c

index 13b3d11ed6b1971f33a5af35ffc45d89f2fb03cb..224c21619fd766f41ea81736332cc2199e109a35 100644 (file)
@@ -131,9 +131,8 @@ PyErr_NormalizeException(PyObject **exc, PyObject **val, PyObject **tb)
        PyObject *initial_tb = NULL;
 
        if (type == NULL) {
-               /* This is a bug.  Should never happen.  Don't dump core. */
-               PyErr_SetString(PyExc_SystemError,
-                       "PyErr_NormalizeException() called without exception");
+               /* There was no exception, so nothing to do. */
+               return;
        }
 
        /* If PyErr_SetNone() was used, the value will have been actually