From 13265a9347e200e71be68e41c5e0ca8765a92b22 Mon Sep 17 00:00:00 2001 From: Shantanu <12621235+hauntsaninja@users.noreply.github.com> Date: Fri, 22 Mar 2024 13:07:05 -0700 Subject: [PATCH] xml: update for security fix (#11648) Fixes #11643 --- stdlib/pyexpat/__init__.pyi | 2 ++ stdlib/xml/etree/ElementTree.pyi | 2 ++ tests/stubtest_allowlists/py3_common.txt | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/stdlib/pyexpat/__init__.pyi b/stdlib/pyexpat/__init__.pyi index 10011b437..88bf9464d 100644 --- a/stdlib/pyexpat/__init__.pyi +++ b/stdlib/pyexpat/__init__.pyi @@ -32,6 +32,8 @@ class XMLParserType: def ExternalEntityParserCreate(self, context: str | None, encoding: str = ..., /) -> XMLParserType: ... def SetParamEntityParsing(self, flag: int, /) -> int: ... def UseForeignDTD(self, flag: bool = True, /) -> None: ... + def GetReparseDeferralEnabled(self) -> bool: ... + def SetReparseDeferralEnabled(self, enabled: bool, /) -> None: ... @property def intern(self) -> dict[str, str]: ... buffer_size: int diff --git a/stdlib/xml/etree/ElementTree.pyi b/stdlib/xml/etree/ElementTree.pyi index a8af66938..9198bd332 100644 --- a/stdlib/xml/etree/ElementTree.pyi +++ b/stdlib/xml/etree/ElementTree.pyi @@ -250,6 +250,7 @@ class XMLPullParser: # Second element in the tuple could be `Element`, `tuple[str, str]` or `None`. # Use `Any` to avoid false-positive errors. def read_events(self) -> Iterator[tuple[str, Any]]: ... + def flush(self) -> None: ... def XML(text: str | ReadableBuffer, parser: XMLParser | None = None) -> Element: ... def XMLID(text: str | ReadableBuffer, parser: XMLParser | None = None) -> tuple[Element, dict[str, Element]]: ... @@ -323,3 +324,4 @@ class XMLParser: def __init__(self, *, target: Any = ..., encoding: str | None = ...) -> None: ... def close(self) -> Any: ... def feed(self, data: str | ReadableBuffer, /) -> None: ... + def flush(self) -> None: ... diff --git a/tests/stubtest_allowlists/py3_common.txt b/tests/stubtest_allowlists/py3_common.txt index 46a162aa9..03c83f55d 100644 --- a/tests/stubtest_allowlists/py3_common.txt +++ b/tests/stubtest_allowlists/py3_common.txt @@ -704,3 +704,11 @@ typing(_extensions)?\.IO\.__iter__ # See https://github.com/python/typeshed/com (tarfile.AbsolutePathError)? (tarfile.AbsoluteLinkError)? (shutil.unpack_archive)? +(pyexpat.XMLParserType.GetReparseDeferralEnabled)? +(pyexpat.XMLParserType.SetReparseDeferralEnabled)? +(xml.etree.ElementTree.XMLParser.flush)? +(xml.etree.ElementTree.XMLPullParser.flush)? +(xml.etree.cElementTree.XMLParser.flush)? +(xml.etree.cElementTree.XMLPullParser.flush)? +(xml.parsers.expat.XMLParserType.GetReparseDeferralEnabled)? +(xml.parsers.expat.XMLParserType.SetReparseDeferralEnabled)?