diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-03-18 12:56:25 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-03-18 12:56:25 (GMT) |
commit | 5200f5502407045b747b97168b80d63a3cfafd4f (patch) | |
tree | fac1d45532ec623f80bdd245b7ed78fc678f66fb /Modules/zipimport.c | |
parent | 50931f41d0837d309289ec36b80951d3c38b30d4 (diff) | |
download | cpython-5200f5502407045b747b97168b80d63a3cfafd4f.zip cpython-5200f5502407045b747b97168b80d63a3cfafd4f.tar.gz cpython-5200f5502407045b747b97168b80d63a3cfafd4f.tar.bz2 |
Issue #19428: Handle PyMarshal_Read*() errors in run_pyc_file()
Detect also earlier PyMarshal_Read*() errors in zipimport.
Diffstat (limited to 'Modules/zipimport.c')
-rw-r--r-- | Modules/zipimport.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Modules/zipimport.c b/Modules/zipimport.c index f5ac10b..e83214c 100644 --- a/Modules/zipimport.c +++ b/Modules/zipimport.c @@ -939,6 +939,9 @@ read_directory(PyObject *archive) header_size = name_size + PyMarshal_ReadShortFromFile(fp) + PyMarshal_ReadShortFromFile(fp); + if (PyErr_Occurred()) + goto error; + if (fread(dummy, 1, 8, fp) != 8) /* Skip unused fields, avoid fseek */ goto file_error; file_offset = PyMarshal_ReadLongFromFile(fp) + arc_offset; |