Backport 53901 and 53902 to prevent crash when there is an error decoding unicode filenames
diff --git a/Misc/NEWS b/Misc/NEWS
index 92c7e7c..9a46c42 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -124,6 +124,8 @@
 
 - The version number of the ctypes package was changed to "1.0.2".
 
+- Bug #1664966: Fix crash in exec if Unicode filename can't be decoded.
+
 - Patch #1544279: Improve thread-safety of the socket module by moving
   the sock_addr_t storage out of the socket object.
 
diff --git a/Python/ceval.c b/Python/ceval.c
index 7884051..1ee0f3b 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -4173,6 +4173,8 @@
 		FILE *fp = PyFile_AsFile(prog);
 		char *name = PyString_AsString(PyFile_Name(prog));
 		PyCompilerFlags cf;
+		if (name == NULL)
+			return -1;
 		cf.cf_flags = 0;
 		if (PyEval_MergeCompilerFlags(&cf))
 			v = PyRun_FileFlags(fp, name, Py_file_input, globals,