Commit bf66f09b authored by Jeremy Hylton's avatar Jeremy Hylton

Fix for SF bug [ #443866 ] Evaluating func_code causing core dump

If the code object has free variables, raise TypeError.
parent 924f4b3b
......@@ -800,8 +800,14 @@ builtin_eval(PyObject *self, PyObject *args)
PyEval_GetBuiltins()) != 0)
return NULL;
}
if (PyCode_Check(cmd))
if (PyCode_Check(cmd)) {
if (PyTuple_GET_SIZE(((PyCodeObject *)cmd)->co_freevars) > 0) {
PyErr_SetString(PyExc_TypeError,
"code object passed to eval() may not contain free variables");
return NULL;
}
return PyEval_EvalCode((PyCodeObject *) cmd, globals, locals);
}
if (!PyString_Check(cmd) &&
!PyUnicode_Check(cmd)) {
PyErr_SetString(PyExc_TypeError,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment