Fix crash in exec when unicode filename can't be decoded.

I can't think of an easy way to test this behavior.  It only occurs
when the file system default encoding and the interpreter default
encoding are different, such that you can open the file but not decode
its name.
This commit is contained in:
Jeremy Hylton 2007-02-25 15:57:45 +00:00
parent 7218c2d2f4
commit c5ceb251b3
2 changed files with 3 additions and 0 deletions

View File

@ -121,6 +121,7 @@ Core and builtins
- with and as are now keywords. - with and as are now keywords.
- Bug #1664966: Fix crash in exec if Unicode filename can't be decoded.
Library Library
------- -------

View File

@ -4202,6 +4202,8 @@ exec_statement(PyFrameObject *f, PyObject *prog, PyObject *globals,
else if (PyFile_Check(prog)) { else if (PyFile_Check(prog)) {
FILE *fp = PyFile_AsFile(prog); FILE *fp = PyFile_AsFile(prog);
char *name = PyString_AsString(PyFile_Name(prog)); char *name = PyString_AsString(PyFile_Name(prog));
if (name == NULL)
return -1;
PyCompilerFlags cf; PyCompilerFlags cf;
cf.cf_flags = 0; cf.cf_flags = 0;
if (PyEval_MergeCompilerFlags(&cf)) if (PyEval_MergeCompilerFlags(&cf))