From d2c62b9b77fd9fe786ffe107a293e4cca7059ecd3d11ce8366f55bddf59a916c Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Sun, 18 May 2025 19:14:03 +0000 Subject: [PATCH] Fix patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python312?expand=0&rev=125 --- CVE-2025-4516-DecodeError-handler.patch | 32 +++++++++++++++++++------ 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/CVE-2025-4516-DecodeError-handler.patch b/CVE-2025-4516-DecodeError-handler.patch index 10f4a1d..c66a932 100644 --- a/CVE-2025-4516-DecodeError-handler.patch +++ b/CVE-2025-4516-DecodeError-handler.patch @@ -18,12 +18,12 @@ with _PyUnicode_DecodeUnicodeEscapeInternal(). Lib/test/test_codeccallbacks.py | 39 +++++++ Lib/test/test_codecs.py | 52 ++++++++-- Lib/test/test_codeop.py | 2 - Lib/test/test_string_literals.py | 4 + Lib/test/test_string_literals.py | 8 - Misc/NEWS.d/next/Security/2025-05-09-20-22-54.gh-issue-133767.kN2i3Q.rst | 2 Objects/bytesobject.c | 43 ++++---- Objects/unicodeobject.c | 46 +++++--- Parser/string_parser.c | 32 +++--- - 10 files changed, 178 insertions(+), 63 deletions(-) + 10 files changed, 180 insertions(+), 65 deletions(-) Index: Python-3.12.10/Include/internal/pycore_bytesobject.h =================================================================== @@ -135,7 +135,7 @@ Index: Python-3.12.10/Lib/test/test_codeccallbacks.py Index: Python-3.12.10/Lib/test/test_codecs.py =================================================================== --- Python-3.12.10.orig/Lib/test/test_codecs.py 2025-05-17 12:00:00.357214034 +0000 -+++ Python-3.12.10/Lib/test/test_codecs.py 2025-05-18 18:00:01.013118263 +0000 ++++ Python-3.12.10/Lib/test/test_codecs.py 2025-05-18 19:13:33.194243474 +0000 @@ -1196,23 +1196,39 @@ check(br"[\1010]", b"[A0]") check(br"[\x41]", b"[A]") @@ -199,7 +199,7 @@ Index: Python-3.12.10/Lib/test/test_codecs.py if b.upper() not in b'UN': - with self.assertWarns(DeprecationWarning): + with self.assertWarnsRegex(DeprecationWarning, -+ r'"\\%c" is an invalid escape sequence' % (i-32)): ++ r'invalid escape sequence "\\%c"' % (i-32)): check(b"\\" + b.upper(), "\\" + chr(i-32)) - with self.assertWarns(DeprecationWarning): + with self.assertWarnsRegex(DeprecationWarning, @@ -243,13 +243,31 @@ Index: Python-3.12.10/Lib/test/test_codeop.py Index: Python-3.12.10/Lib/test/test_string_literals.py =================================================================== --- Python-3.12.10.orig/Lib/test/test_string_literals.py 2025-05-17 12:00:01.489624803 +0000 -+++ Python-3.12.10/Lib/test/test_string_literals.py 2025-05-18 18:21:41.052332892 +0000 ++++ Python-3.12.10/Lib/test/test_string_literals.py 2025-05-18 19:11:59.157634154 +0000 +@@ -116,7 +116,7 @@ + warnings.simplefilter('always', category=SyntaxWarning) + eval("'''\n\\z'''") + self.assertEqual(len(w), 1) +- self.assertEqual(str(w[0].message), r"invalid escape sequence '\z'") ++ self.assertEqual(str(w[0].message), r"'\z' is an invalid escape sequence.") + self.assertEqual(w[0].filename, '') + self.assertEqual(w[0].lineno, 2) + +@@ -153,7 +153,7 @@ + eval("'''\n\\407'''") + self.assertEqual(len(w), 1) + self.assertEqual(str(w[0].message), +- r"invalid octal escape sequence '\407'") ++ r"'\407' is an invalid octal escape sequence.") + self.assertEqual(w[0].filename, '') + self.assertEqual(w[0].lineno, 2) + @@ -228,7 +228,7 @@ warnings.simplefilter('always', category=SyntaxWarning) eval("b'''\n\\z'''") self.assertEqual(len(w), 1) - self.assertEqual(str(w[0].message), r"invalid escape sequence '\z'") -+ self.assertEqual(str(w[0].message), r"'\z' is an invalid escape sequence") ++ self.assertEqual(str(w[0].message), r"'\z' is an invalid escape sequence.") self.assertEqual(w[0].filename, '') self.assertEqual(w[0].lineno, 2) @@ -258,7 +276,7 @@ Index: Python-3.12.10/Lib/test/test_string_literals.py self.assertEqual(len(w), 1) self.assertEqual(str(w[0].message), - r"invalid octal escape sequence '\407'") -+ r"'\407' is an invalid octal escape sequence") ++ r"'\407' is an invalid octal escape sequence.") self.assertEqual(w[0].filename, '') self.assertEqual(w[0].lineno, 2)