Kaydet (Commit) f6202635 authored tarafından Barry Warsaw's avatar Barry Warsaw

call_trace(): A fix for PR#73, if an exception occurred in the

tracefunc (or profilefunc -- we're not sure which), zap the global
trace and profile funcs so that we can't get into recursive loop when
instantiating the resulting class based exception.
üst 71eb8644
......@@ -2201,6 +2201,14 @@ call_trace(p_trace, p_newtrace, f, msg, arg)
Py_XDECREF(*p_newtrace);
*p_newtrace = NULL;
}
/* to be extra double plus sure we don't get recursive
* calls inf either tracefunc or profilefunc gets an
* exception, zap the global variables.
*/
Py_XDECREF(tstate->sys_tracefunc);
tstate->sys_tracefunc = NULL;
Py_XDECREF(tstate->sys_profilefunc);
tstate->sys_profilefunc = NULL;
return -1;
}
else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment