diff --git a/Lib/modulefinder.py b/Lib/modulefinder.py index ded31253363..25e14827c3c 100644 --- a/Lib/modulefinder.py +++ b/Lib/modulefinder.py @@ -245,6 +245,9 @@ def import_module(self, partname, fqname, parent): if self.badmodules.has_key(fqname): self.msgout(3, "import_module -> None") return None + if parent and parent.__path__ is None: + self.msgout(3, "import_module -> None") + return None try: fp, pathname, stuff = self.find_module(partname, parent and parent.__path__, parent) @@ -392,6 +395,7 @@ def add_module(self, fqname): def find_module(self, name, path, parent=None): if parent is not None: + # assert path is not None fullname = parent.__name__+'.'+name else: fullname = name diff --git a/Misc/NEWS b/Misc/NEWS index 809d2d972cb..f111d0ef4af 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -306,6 +306,8 @@ Extension modules Library ------- +- Bug #876278: Unbounded recursion in modulefinder + - Bug #780300: Swap public and system ID in LexicalHandler.startDTD. Applications relying on the wrong order need to be corrected.