]> granicus.if.org Git - python/commitdiff
In PyFrame_New(), don't set extras to something derived from code
authorGuido van Rossum <guido@python.org>
Fri, 25 Sep 1998 14:11:46 +0000 (14:11 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 25 Sep 1998 14:11:46 +0000 (14:11 +0000)
before code has been checked for validity.  Discovered by Vladimir
Marangozov.

Objects/frameobject.c

index a98d68e025af62e6734d5c40eb7413f91b1ec00a..5d854455fd0fa2f56aff2e343dc563f6d39cdf9c 100644 (file)
@@ -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))