From: Brett Cannon Date: Fri, 3 Feb 2012 17:08:03 +0000 (-0500) Subject: Check for errors in creating sub-interpreters when testing the C API. X-Git-Tag: v3.3.0a1~260 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b6855683cc808054349af9945653f6c626c3c8da;p=python Check for errors in creating sub-interpreters when testing the C API. --- diff --git a/Modules/_testcapimodule.c b/Modules/_testcapimodule.c index b00ac20b8e..bcb3a0fcbf 100644 --- a/Modules/_testcapimodule.c +++ b/Modules/_testcapimodule.c @@ -2396,6 +2396,14 @@ run_in_subinterp(PyObject *self, PyObject *args) PyThreadState_Swap(NULL); substate = Py_NewInterpreter(); + if (substate == NULL) { + /* Since no new thread state was created, there is no exception to + propagate; raise a fresh one after swapping in the old thread + state. */ + PyThreadState_Swap(mainstate); + PyErr_SetString(PyExc_RuntimeError, "sub-interpreter creation failed"); + return NULL; + } r = PyRun_SimpleString(code); Py_EndInterpreter(substate);