changeset: 90670:53cf343c4fff parent: 90668:3c26389d741c parent: 90669:cee528d44b1e user: Victor Stinner date: Tue May 13 01:32:54 2014 +0200 files: Misc/NEWS Objects/typeobject.c description: (Merge 3.4) Issue #21418: Fix a crash in the builtin function super() when called without argument and without current frame (ex: embedded Python). diff -r 3c26389d741c -r 53cf343c4fff Misc/NEWS --- a/Misc/NEWS Mon May 12 23:25:25 2014 +0200 +++ b/Misc/NEWS Tue May 13 01:32:54 2014 +0200 @@ -10,6 +10,9 @@ Core and Builtins ----------------- +- Issue #21418: Fix a crash in the builtin function super() when called without + argument and without current frame (ex: embedded Python). + - Issue #21425: Fix flushing of standard streams in the interactive interpreter. diff -r 3c26389d741c -r 53cf343c4fff Objects/typeobject.c --- a/Objects/typeobject.c Mon May 12 23:25:25 2014 +0200 +++ b/Objects/typeobject.c Tue May 13 01:32:54 2014 +0200 @@ -6929,9 +6929,16 @@ if (type == NULL) { /* Call super(), without args -- fill in from __class__ and first local variable on the stack. */ - PyFrameObject *f = PyThreadState_GET()->frame; - PyCodeObject *co = f->f_code; + PyFrameObject *f; + PyCodeObject *co; Py_ssize_t i, n; + f = PyThreadState_GET()->frame; + if (f == NULL) { + PyErr_SetString(PyExc_RuntimeError, + "super(): no current frame"); + return -1; + } + co = f->f_code; if (co == NULL) { PyErr_SetString(PyExc_RuntimeError, "super(): no code object");