From: Guido van Rossum Date: Fri, 25 Sep 1998 14:11:46 +0000 (+0000) Subject: In PyFrame_New(), don't set extras to something derived from code X-Git-Tag: v1.5.2a2~250 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=67906af81148617da6638469e97085e7485b17a0;p=python In PyFrame_New(), don't set extras to something derived from code before code has been checked for validity. Discovered by Vladimir Marangozov. --- diff --git a/Objects/frameobject.c b/Objects/frameobject.c index a98d68e025..5d854455fd 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -150,7 +150,7 @@ PyFrame_New(tstate, code, globals, locals) static PyObject *builtin_object; PyFrameObject *f; PyObject *builtins; - int extras = code->co_stacksize + code->co_nlocals; + int extras; if (builtin_object == NULL) { builtin_object = PyString_InternFromString("__builtins__"); @@ -164,6 +164,7 @@ PyFrame_New(tstate, code, globals, locals) PyErr_BadInternalCall(); return NULL; } + extras = code->co_stacksize + code->co_nlocals; if (back == NULL || back->f_globals != globals) { builtins = PyDict_GetItem(globals, builtin_object); if (builtins != NULL && PyModule_Check(builtins))