Commit 2487f30d authored by Steve Weber's avatar Steve Weber Committed by Ned Deily

bpo-30167: Prevent site.main() exception if PYTHONSTARTUP is set. (GH-6731)

Before Python 3.6, os.path.abspath(None) used to report an AttributeError which was properly caught inside site.abs_paths, making it ignore __main__, one of sys.modules, which has __file__ and __cached__ set to None. With 3.6, os.path.abspath(None) raises TypeError instead which site.abs_path was not expecting.  This resulted in an uncaught exception if a user had PYTHONSTARTUP set and the application called site.main() which a number of third-party programs do.
parent 8398713c
......@@ -104,11 +104,11 @@ def abs_paths():
continue # don't mess with a PEP 302-supplied __file__
try:
m.__file__ = os.path.abspath(m.__file__)
except (AttributeError, OSError):
except (AttributeError, OSError, TypeError):
pass
try:
m.__cached__ = os.path.abspath(m.__cached__)
except (AttributeError, OSError):
except (AttributeError, OSError, TypeError):
pass
......
......@@ -1721,6 +1721,7 @@ David Watson
Aaron Watters
Henrik Weber
Leon Weber
Steve Weber
Corran Webster
Glyn Webster
Phil Webster
......
Prevent site.main() exception if PYTHONSTARTUP is set. Patch by Steve Weber.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment