https://github.com/python/cpython/commit/a571a2fd3fdaeafdfd71f3d80ed5a3b22b63d0f7
commit: a571a2fd3fdaeafdfd71f3d80ed5a3b22b63d0f7
branch: main
author: kcatss <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2024-01-18T13:27:44+02:00
summary:

gh-114050: Fix crash when more than two arguments are passed to int() 
(GH-114067)

Co-authored-by: Kirill Podoprigora <[email protected]>

files:
A Misc/NEWS.d/next/Core and 
Builtins/2024-01-17-23-39-20.gh-issue-114050.Lnv1oq.rst
M Lib/test/test_int.py
M Objects/longobject.c

diff --git a/Lib/test/test_int.py b/Lib/test/test_int.py
index 5545ee39d8e942..0bf55facad9fed 100644
--- a/Lib/test/test_int.py
+++ b/Lib/test/test_int.py
@@ -90,6 +90,7 @@ def test_basic(self):
 
 
         self.assertRaises(TypeError, int, 1, 12)
+        self.assertRaises(TypeError, int, "10", 2, 1)
 
         self.assertEqual(int('0o123', 0), 83)
         self.assertEqual(int('0x123', 16), 291)
diff --git a/Misc/NEWS.d/next/Core and 
Builtins/2024-01-17-23-39-20.gh-issue-114050.Lnv1oq.rst b/Misc/NEWS.d/next/Core 
and Builtins/2024-01-17-23-39-20.gh-issue-114050.Lnv1oq.rst
new file mode 100644
index 00000000000000..c35d2508e6bdda
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and 
Builtins/2024-01-17-23-39-20.gh-issue-114050.Lnv1oq.rst 
@@ -0,0 +1,2 @@
+Fix segmentation fault caused by an incorrect format string
+in ``TypeError`` exception when more than two arguments are passed to ``int``.
diff --git a/Objects/longobject.c b/Objects/longobject.c
index fae70dd13bb18a..e655ba19e8f1c1 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -6171,7 +6171,7 @@ long_vectorcall(PyObject *type, PyObject * const*args,
             return long_new_impl(_PyType_CAST(type), args[0], args[1]);
         default:
             return PyErr_Format(PyExc_TypeError,
-                                "int expected at most 2 argument%s, got %zd",
+                                "int expected at most 2 arguments, got %zd",
                                 nargs);
     }
 }

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to