Mercurial > cpython-lru_cache-weakref
diff Python/bltinmodule.c @ 18885:22456d0ee737 legacy-trunk
Fix for SF bug [ #443866 ] Evaluating func_code causing core dump
If the code object has free variables, raise TypeError.
| author | Jeremy Hylton <jeremy@alum.mit.edu> |
|---|---|
| date | Mon, 30 Jul 2001 21:50:55 +0000 |
| parents | 03305602ba9b |
| children | f12e1a766a14 |
line wrap: on
line diff
--- a/Python/bltinmodule.c Mon Jul 30 21:49:22 2001 +0000 +++ b/Python/bltinmodule.c Mon Jul 30 21:50:55 2001 +0000 @@ -800,8 +800,14 @@ 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,
