changeset: 90669:cee528d44b1e branch: 3.4 parent: 90667:c0404f0da01a user: Victor Stinner date: Tue May 13 01:32:36 2014 +0200 files: Misc/NEWS Objects/typeobject.c description: Issue #21418: Fix a crash in the builtin function super() when called without argument and without current frame (ex: embedded Python). diff -r c0404f0da01a -r cee528d44b1e Misc/NEWS --- a/Misc/NEWS Mon May 12 23:25:09 2014 +0200 +++ b/Misc/NEWS Tue May 13 01:32:36 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 c0404f0da01a -r cee528d44b1e Objects/typeobject.c --- a/Objects/typeobject.c Mon May 12 23:25:09 2014 +0200 +++ b/Objects/typeobject.c Tue May 13 01:32:36 2014 +0200 @@ -6919,9 +6919,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");