mirror of https://github.com/python/cpython
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.
This commit is contained in:
parent
8398713cea
commit
2487f30d55
|
@ -104,11 +104,11 @@ def abs_paths():
|
||||||
continue # don't mess with a PEP 302-supplied __file__
|
continue # don't mess with a PEP 302-supplied __file__
|
||||||
try:
|
try:
|
||||||
m.__file__ = os.path.abspath(m.__file__)
|
m.__file__ = os.path.abspath(m.__file__)
|
||||||
except (AttributeError, OSError):
|
except (AttributeError, OSError, TypeError):
|
||||||
pass
|
pass
|
||||||
try:
|
try:
|
||||||
m.__cached__ = os.path.abspath(m.__cached__)
|
m.__cached__ = os.path.abspath(m.__cached__)
|
||||||
except (AttributeError, OSError):
|
except (AttributeError, OSError, TypeError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1721,6 +1721,7 @@ David Watson
|
||||||
Aaron Watters
|
Aaron Watters
|
||||||
Henrik Weber
|
Henrik Weber
|
||||||
Leon Weber
|
Leon Weber
|
||||||
|
Steve Weber
|
||||||
Corran Webster
|
Corran Webster
|
||||||
Glyn Webster
|
Glyn Webster
|
||||||
Phil Webster
|
Phil Webster
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Prevent site.main() exception if PYTHONSTARTUP is set. Patch by Steve Weber.
|
Loading…
Reference in New Issue