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 a98d68e..5d85445 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -150,7 +150,7 @@
 	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 @@
 		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))