From: Neal Norwitz Date: Fri, 21 Jul 2006 05:31:02 +0000 (+0000) Subject: Move the initialization of some pointers earlier. The problem is X-Git-Tag: v2.5b3~209 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1adbb507013bea05cda92ea6aa9a8fef72657923;p=python Move the initialization of some pointers earlier. The problem is that if we call Py_DECREF(frame) like we do if allocating locals fails, frame_dealloc() will try to use these bogus values and crash. --- diff --git a/Objects/frameobject.c b/Objects/frameobject.c index a933c4a691..3a073b6fa0 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -642,6 +642,7 @@ PyFrame_New(PyThreadState *tstate, PyCodeObject *code, PyObject *globals, f->f_trace = NULL; f->f_exc_type = f->f_exc_value = f->f_exc_traceback = NULL; } + f->f_stacktop = f->f_valuestack; f->f_builtins = builtins; Py_XINCREF(back); f->f_back = back; @@ -672,7 +673,6 @@ PyFrame_New(PyThreadState *tstate, PyCodeObject *code, PyObject *globals, f->f_lineno = code->co_firstlineno; f->f_iblock = 0; - f->f_stacktop = f->f_valuestack; _PyObject_GC_TRACK(f); return f; }