]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-41085: Fix array.array.index() on 64-bit Windows (GH-21071)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 23 Jun 2020 13:40:47 +0000 (06:40 -0700)
committerGitHub <noreply@github.com>
Tue, 23 Jun 2020 13:40:47 +0000 (06:40 -0700)
Fix integer overflow in the :meth:`array.array.index` method on 64-bit Windows
for index larger than ``2**31``.
(cherry picked from commit 1d3dad5f96ed445b958ec53dfa0d46812f2162d9)

Co-authored-by: WildCard65 <WildCard65@users.noreply.github.com>
Misc/NEWS.d/next/Tests/2020-06-23-12-02-45.bpo-41085.JZKsyz.rst [new file with mode: 0644]
Modules/arraymodule.c

diff --git a/Misc/NEWS.d/next/Tests/2020-06-23-12-02-45.bpo-41085.JZKsyz.rst b/Misc/NEWS.d/next/Tests/2020-06-23-12-02-45.bpo-41085.JZKsyz.rst
new file mode 100644 (file)
index 0000000..463dffd
--- /dev/null
@@ -0,0 +1,2 @@
+Fix integer overflow in the :meth:`array.array.index` method on 64-bit Windows
+for index larger than ``2**31``.
index 5289ea0e91a612759d185b8218983987535126da..abcdd1e8a6e53e77f81e05d472698b597e38f81d 100644 (file)
@@ -1136,7 +1136,7 @@ array_array_index(arrayobject *self, PyObject *v)
         cmp = PyObject_RichCompareBool(selfi, v, Py_EQ);
         Py_DECREF(selfi);
         if (cmp > 0) {
-            return PyLong_FromLong((long)i);
+            return PyLong_FromSsize_t(i);
         }
         else if (cmp < 0)
             return NULL;