diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-02-26 01:47:47 (GMT) |
---|---|---|
committer | larryhastings <larry@hastings.org> | 2019-02-26 01:47:47 (GMT) |
commit | 7cd08cf62086a8a2d84fd825dfcd8bfe33bf1986 (patch) | |
tree | da531e7af9288bb094cb400bf9f057692676a2bb | |
parent | ef33dd6036aafbd3f06c1d56e2b1a81dae3da63c (diff) | |
download | cpython-7cd08cf62086a8a2d84fd825dfcd8bfe33bf1986.zip cpython-7cd08cf62086a8a2d84fd825dfcd8bfe33bf1986.tar.gz cpython-7cd08cf62086a8a2d84fd825dfcd8bfe33bf1986.tar.bz2 |
bpo-34791: xml package obeys ignore env flags (GH-9544) (#11871)
The xml.sax and xml.dom.domreg modules now obey
sys.flags.ignore_environment.
Signed-off-by: Christian Heimes <christian@python.org>
(cherry picked from commit 223e501fb9c2b6ae21b96054e20c4c31d94a5d96)
-rw-r--r-- | Lib/xml/dom/domreg.py | 4 | ||||
-rw-r--r-- | Lib/xml/sax/__init__.py | 2 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Security/2018-09-24-18-49-25.bpo-34791.78GmIG.rst | 3 |
3 files changed, 7 insertions, 2 deletions
diff --git a/Lib/xml/dom/domreg.py b/Lib/xml/dom/domreg.py index 8c3d901..69c17ee 100644 --- a/Lib/xml/dom/domreg.py +++ b/Lib/xml/dom/domreg.py @@ -6,6 +6,8 @@ registerDOMImplementation should be imported from xml.dom.""" # should be published by posting to xml-sig@python.org, and are # subsequently recorded in this file. +import sys + well_known_implementations = { 'minidom':'xml.dom.minidom', '4DOM': 'xml.dom.DOMImplementation', @@ -55,7 +57,7 @@ def getDOMImplementation(name=None, features=()): return mod.getDOMImplementation() elif name: return registered[name]() - elif "PYTHON_DOM" in os.environ: + elif not sys.flags.ignore_environment and "PYTHON_DOM" in os.environ: return getDOMImplementation(name = os.environ["PYTHON_DOM"]) # User did not specify a name, try implementations in arbitrary diff --git a/Lib/xml/sax/__init__.py b/Lib/xml/sax/__init__.py index ef67ae6..13f6cf5 100644 --- a/Lib/xml/sax/__init__.py +++ b/Lib/xml/sax/__init__.py @@ -58,7 +58,7 @@ if _false: import xml.sax.expatreader import os, sys -if "PY_SAX_PARSER" in os.environ: +if not sys.flags.ignore_environment and "PY_SAX_PARSER" in os.environ: default_parser_list = os.environ["PY_SAX_PARSER"].split(",") del os diff --git a/Misc/NEWS.d/next/Security/2018-09-24-18-49-25.bpo-34791.78GmIG.rst b/Misc/NEWS.d/next/Security/2018-09-24-18-49-25.bpo-34791.78GmIG.rst new file mode 100644 index 0000000..afb59f8 --- /dev/null +++ b/Misc/NEWS.d/next/Security/2018-09-24-18-49-25.bpo-34791.78GmIG.rst @@ -0,0 +1,3 @@ +The xml.sax and xml.dom.domreg no longer use environment variables to +override parser implementations when sys.flags.ignore_environment is set by +-E or -I arguments. |