From: WildCard65 Date: Tue, 23 Jun 2020 13:21:16 +0000 (-0400) Subject: bpo-41085: Fix array.array.index() on 64-bit Windows (GH-21071) X-Git-Tag: v3.10.0a1~548 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1d3dad5f96ed445b958ec53dfa0d46812f2162d9;p=thirdparty%2FPython%2Fcpython.git bpo-41085: Fix array.array.index() on 64-bit Windows (GH-21071) Fix integer overflow in the :meth:`array.array.index` method on 64-bit Windows for index larger than ``2**31``. --- 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 index 000000000000..463dffdd653e --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-06-23-12-02-45.bpo-41085.JZKsyz.rst @@ -0,0 +1,2 @@ +Fix integer overflow in the :meth:`array.array.index` method on 64-bit Windows +for index larger than ``2**31``. diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index 8f12c6164633..2d498c7e8294 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -1130,7 +1130,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;