From: Brett Cannon Date: Fri, 28 Feb 2014 15:50:34 +0000 (-0500) Subject: merge for issue #20778 X-Git-Tag: v3.4.1rc1~233^2~172 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0f3847855dafbfaeed385a676a004f9bb5a9cf83;p=thirdparty%2FPython%2Fcpython.git merge for issue #20778 --- 0f3847855dafbfaeed385a676a004f9bb5a9cf83 diff --cc Lib/modulefinder.py index b19941e61e82,264b0f0bfd1f..cc5b8cc69113 --- a/Lib/modulefinder.py +++ b/Lib/modulefinder.py @@@ -1,6 -1,7 +1,7 @@@ """Find modules used by a script, using introspection.""" import dis -import imp ++import importlib._bootstrap import importlib.machinery import marshal import os @@@ -287,11 -284,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) - fp.read(8) # Skip mtime and size. -- 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)