mirror of https://github.com/python/cpython.git
Update the encoding package's search function to use absolute imports when
calling __import__. This helps make the expected search locations for encoding modules be more explicit. One could use an explicit value for __path__ when making the call to __import__ to force the exact location searched for encodings. This would give the most strict search path possible if one is worried about malicious code being imported. The unfortunate side-effect of that is that if __path__ was modified on 'encodings' on purpose in a safe way it would not be picked up in future __import__ calls.
This commit is contained in:
parent
9cb37fc5d0
commit
971a012ce1
|
@ -93,8 +93,10 @@ def search_function(encoding):
|
||||||
if not modname or '.' in modname:
|
if not modname or '.' in modname:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
mod = __import__('encodings.' + modname,
|
# Import equivalent to `` from .modname import *``.
|
||||||
globals(), locals(), _import_tail)
|
# '*' is used so that __import__ returns the desired module and not
|
||||||
|
# 'encodings' itself.
|
||||||
|
mod = __import__(modname, globals(), locals(), ['*'], 1)
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -128,6 +128,9 @@ Core and builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Have the encoding package's search function dynamically import using absolute
|
||||||
|
import semantics.
|
||||||
|
|
||||||
- Patch #1647484: Renamed GzipFile's filename attribute to name.
|
- Patch #1647484: Renamed GzipFile's filename attribute to name.
|
||||||
|
|
||||||
- Patch #1517891: Mode 'a' for ZipFile now creates the file if it
|
- Patch #1517891: Mode 'a' for ZipFile now creates the file if it
|
||||||
|
|
Loading…
Reference in New Issue