[issue3611] invalid exception context

STINNER Victor report at bugs.python.org
Wed Aug 20 04:45:52 CEST 2008


STINNER Victor <haypo at users.sourceforge.net> added the comment:

I also noticed a crash in PyErr_SetObject(): in block <line 68..86>, 
tstate->exc_value value may changes and so it's possible that 
tstate->exc_value becomes NULL. I added a test to avoid this crash:

Index: Python/errors.c
===================================================================
--- Python/errors.c     (révision 65899)
+++ Python/errors.c     (copie de travail)
@@ -88,7 +88,7 @@
                   This is O(chain length) but context chains are
                   usually very short. Sensitive readers may try
                   to inline the call to PyException_GetContext. */
-               if (tstate->exc_value != value) {
+               if (tstate->exc_value != value && tstate->exc_value != 
NULL) {
                        PyObject *o = tstate->exc_value, *context;
                        while ((context = PyException_GetContext(o))) 
{
                                Py_DECREF(context);

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue3611>
_______________________________________


More information about the Python-bugs-list mailing list