Mercurial > cpython-lru_cache-weakref
comparison Python/pythonrun.c @ 52818:cb58c973985c 2.6
Merged revisions 71152 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71152 | matthias.klose | 2009-04-04 16:18:13 +0200 (Sa, 04 Apr 2009) | 3 lines
- Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with
short file names.
........
| author | Matthias Klose <doko@ubuntu.com> |
|---|---|
| date | Sat, 04 Apr 2009 14:19:56 +0000 |
| parents | e2818b9f964b |
| children | 2abc3b4bce7c |
comparison
equal
deleted
inserted
replaced
| 52810:74cf20a61bec | 52818:cb58c973985c |
|---|---|
| 893 PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit, | 893 PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit, |
| 894 PyCompilerFlags *flags) | 894 PyCompilerFlags *flags) |
| 895 { | 895 { |
| 896 PyObject *m, *d, *v; | 896 PyObject *m, *d, *v; |
| 897 const char *ext; | 897 const char *ext; |
| 898 int set_file_name = 0, ret; | 898 int set_file_name = 0, ret, len; |
| 899 | 899 |
| 900 m = PyImport_AddModule("__main__"); | 900 m = PyImport_AddModule("__main__"); |
| 901 if (m == NULL) | 901 if (m == NULL) |
| 902 return -1; | 902 return -1; |
| 903 d = PyModule_GetDict(m); | 903 d = PyModule_GetDict(m); |
| 910 return -1; | 910 return -1; |
| 911 } | 911 } |
| 912 set_file_name = 1; | 912 set_file_name = 1; |
| 913 Py_DECREF(f); | 913 Py_DECREF(f); |
| 914 } | 914 } |
| 915 ext = filename + strlen(filename) - 4; | 915 len = strlen(filename); |
| 916 ext = filename + len - (len > 4 ? 4 : 0); | |
| 916 if (maybe_pyc_file(fp, filename, ext, closeit)) { | 917 if (maybe_pyc_file(fp, filename, ext, closeit)) { |
| 917 /* Try to run a pyc file. First, re-open in binary */ | 918 /* Try to run a pyc file. First, re-open in binary */ |
| 918 if (closeit) | 919 if (closeit) |
| 919 fclose(fp); | 920 fclose(fp); |
| 920 if ((fp = fopen(filename, "rb")) == NULL) { | 921 if ((fp = fopen(filename, "rb")) == NULL) { |
