From 67906af81148617da6638469e97085e7485b17a0 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 25 Sep 1998 14:11:46 +0000 Subject: [PATCH] In PyFrame_New(), don't set extras to something derived from code before code has been checked for validity. Discovered by Vladimir Marangozov. --- Objects/frameobject.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Objects/frameobject.c b/Objects/frameobject.c index a98d68e025a..5d854455fd0 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))