SHA256
1
0
forked from pool/python312
python312/CVE-2023-52425-libexpat-2.6.0-backport-15.6.patch
Matej Cepl 7a215a300e - Update to 3.12.4:
- Security
    - gh-118486: os.mkdir() on Windows now accepts mode of 0o700
      to restrict the new directory to the current user. This
      fixes CVE-2024-4030 affecting tempfile.mkdtemp() in
      scenarios where the base temporary directory is more
      permissive than the default.
    - gh-116741: Update bundled libexpat to 2.6.2
    - gh-117233: Detect BLAKE2, SHA3, Shake, & truncated SHA512
      support in the OpenSSL-ish libcrypto library at build
      time. This allows hashlib to be used with libraries that do
      not to support every algorithm that upstream OpenSSL does.
  - Core and Builtins
    - gh-119821: Fix execution of annotation scopes within
      classes when globals is set to a non-dict. Patch by Jelle
      Zijlstra.
    - gh-118263: Speed up os.path.normpath() with a direct C
      call.
    - gh-119311: Fix bug where names are unexpectedly mangled in
      the bases of generic classes.
    - gh-119395: Fix bug where names appearing after a generic
      class are mangled as if they are in the generic class.
    - gh-118507: Fix os.path.isfile() on Windows for pipes.
    - gh-119213: Non-builtin modules built with argument clinic
      were crashing if used in a subinterpreter before the main
      interpreter. The objects that were causing the problem by
      leaking between interpreters carelessly have been fixed.
    - gh-119011: Fixes type.__type_params__ to return an empty
      tuple instead of a descriptor.
    - gh-118997: Fix _Py_ClearImmortal() assertion: use

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python312?expand=0&rev=47
2024-06-07 10:51:44 +00:00

68 lines
2.6 KiB
Diff

Index: Python-3.12.3/Lib/test/test_xml_etree.py
===================================================================
--- Python-3.12.3.orig/Lib/test/test_xml_etree.py
+++ Python-3.12.3/Lib/test/test_xml_etree.py
@@ -121,6 +121,11 @@ ATTLIST_XML = """\
</foo>
"""
+IS_SLE_15_6 = os.environ.get("SLE_VERSION", "") == "0150600"
+fails_with_expat_2_6_0 = (unittest.expectedFailure
+ # 2.4 version patched in SLE
+ if IS_SLE_15_6 and pyexpat.version_info >= (2, 4, 0) else
+ lambda test: test)
def checkwarnings(*filters, quiet=False):
def decorator(test):
def newtest(*args, **kwargs):
@@ -1424,9 +1429,11 @@ class XMLPullParserTest(unittest.TestCas
self.assert_event_tags(parser, [('end', 'root')])
self.assertIsNone(parser.close())
+ @fails_with_expat_2_6_0
def test_simple_xml_chunk_1(self):
self.test_simple_xml(chunk_size=1, flush=True)
+ @fails_with_expat_2_6_0
def test_simple_xml_chunk_5(self):
self.test_simple_xml(chunk_size=5, flush=True)
@@ -1651,6 +1658,9 @@ class XMLPullParserTest(unittest.TestCas
self.assert_event_tags(parser, [('end', 'doc')])
+ @unittest.skipIf(pyexpat.version_info < (2, 6, 0),
+ f'Expat {pyexpat.version_info} does not '
+ 'support reparse deferral')
def test_flush_reparse_deferral_disabled(self):
parser = ET.XMLPullParser(events=('start', 'end'))
Index: Python-3.12.3/Lib/test/test_sax.py
===================================================================
--- Python-3.12.3.orig/Lib/test/test_sax.py
+++ Python-3.12.3/Lib/test/test_sax.py
@@ -1240,6 +1240,9 @@ class ExpatReaderTest(XmlTestBase):
self.assertEqual(result.getvalue(), start + b"<doc></doc>")
+ @unittest.skipIf(pyexpat.version_info < (2, 6, 0),
+ f'Expat {pyexpat.version_info} does not '
+ 'support reparse deferral')
def test_flush_reparse_deferral_disabled(self):
result = BytesIO()
xmlgen = XMLGenerator(result)
Index: Python-3.12.3/Lib/test/test_pyexpat.py
===================================================================
--- Python-3.12.3.orig/Lib/test/test_pyexpat.py
+++ Python-3.12.3/Lib/test/test_pyexpat.py
@@ -794,6 +794,10 @@ class ReparseDeferralTest(unittest.TestC
self.assertEqual(started, ['doc'])
def test_reparse_deferral_disabled(self):
+ if expat.version_info < (2, 6, 0):
+ self.skipTest(f'Expat {expat.version_info} does not '
+ 'support reparse deferral')
+
started = []
def start_element(name, _):