diff options
author | Brett Cannon <brett@python.org> | 2014-02-28 15:50:34 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2014-02-28 15:50:34 (GMT) |
commit | 0f3847855dafbfaeed385a676a004f9bb5a9cf83 (patch) | |
tree | 73545353dc566ddbf7d04552d6e4ae6a761b6135 /Lib/modulefinder.py | |
parent | acc74e6c63d5f4b91b26134b1fc61aa005aa26e3 (diff) | |
parent | 298bb967767d666fca8177f8c2352c2134490565 (diff) | |
download | cpython-0f3847855dafbfaeed385a676a004f9bb5a9cf83.zip cpython-0f3847855dafbfaeed385a676a004f9bb5a9cf83.tar.gz cpython-0f3847855dafbfaeed385a676a004f9bb5a9cf83.tar.bz2 |
merge for issue #20778
Diffstat (limited to 'Lib/modulefinder.py')
-rw-r--r-- | Lib/modulefinder.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Lib/modulefinder.py b/Lib/modulefinder.py index b19941e..cc5b8cc 100644 --- a/Lib/modulefinder.py +++ b/Lib/modulefinder.py @@ -1,6 +1,7 @@ """Find modules used by a script, using introspection.""" import dis +import importlib._bootstrap import importlib.machinery import marshal import os @@ -287,11 +288,12 @@ class ModuleFinder: if type == imp.PY_SOURCE: co = compile(fp.read()+'\n', pathname, 'exec') elif type == imp.PY_COMPILED: - if fp.read(4) != imp.get_magic(): - self.msgout(2, "raise ImportError: Bad magic number", pathname) - raise ImportError("Bad magic number in %s" % pathname) - fp.read(4) - co = marshal.load(fp) + try: + marshal_data = importlib._bootstrap._validate_bytecode_header(fp.read()) + except ImportError as exc: + self.msgout(2, "raise ImportError: " + str(exc), pathname) + raise + co = marshal.loads(marshal_data) else: co = None m = self.add_module(fqname) |