]> granicus.if.org Git - python/commitdiff
Fix crash in exec when unicode filename can't be decoded.
authorJeremy Hylton <jeremy@alum.mit.edu>
Sun, 25 Feb 2007 15:57:45 +0000 (15:57 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Sun, 25 Feb 2007 15:57:45 +0000 (15:57 +0000)
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.

Misc/NEWS
Python/ceval.c

index d7eab9cbc0fc2da8d1111368e72812072862946e..4428670b40cda3388bc7439753d61b901dbff1d4 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -121,6 +121,7 @@ Core and builtins
 
 - with and as are now keywords.
 
+- Bug #1664966: Fix crash in exec if Unicode filename can't be decoded.
 
 Library
 -------
index ffdc75bfa67bd0583082fd5d80885ee4fcda4e1d..9e063029a31300912296d1ab0027cb483956ba52 100644 (file)
@@ -4202,6 +4202,8 @@ exec_statement(PyFrameObject *f, PyObject *prog, PyObject *globals,
        else if (PyFile_Check(prog)) {
                FILE *fp = PyFile_AsFile(prog);
                char *name = PyString_AsString(PyFile_Name(prog));
+                if (name == NULL)
+                        return -1;
                PyCompilerFlags cf;
                cf.cf_flags = 0;
                if (PyEval_MergeCompilerFlags(&cf))