From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 28 Jul 2021 21:52:11 +0000 (-0700) Subject: bpo-40263: Fixes an off-by-one error in _winapi_WaitForMultipleObjects_impl (GH-19501) X-Git-Tag: v3.9.7~114 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=899e37b202c8b096d55e2e3c300c9759ebfe7f7a;p=thirdparty%2FPython%2Fcpython.git bpo-40263: Fixes an off-by-one error in _winapi_WaitForMultipleObjects_impl (GH-19501) (cherry picked from commit 92b5dc780db968f6277f42cb06926dddb7475dc6) Co-authored-by: Ray Donnelly --- diff --git a/Misc/NEWS.d/next/Windows/2020-04-13-15-20-28.bpo-40263.1KKEbu.rst b/Misc/NEWS.d/next/Windows/2020-04-13-15-20-28.bpo-40263.1KKEbu.rst new file mode 100644 index 000000000000..0c31606d4928 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2020-04-13-15-20-28.bpo-40263.1KKEbu.rst @@ -0,0 +1,3 @@ +This is a follow-on bug from https://bugs.python.org/issue26903. Once that +is applied we run into an off-by-one assertion problem. The assert was not +correct. diff --git a/Modules/_winapi.c b/Modules/_winapi.c index e1672c478522..4206bb6c495e 100644 --- a/Modules/_winapi.c +++ b/Modules/_winapi.c @@ -1713,7 +1713,7 @@ _winapi_WaitForMultipleObjects_impl(PyObject *module, PyObject *handle_seq, nhandles = PySequence_Length(handle_seq); if (nhandles == -1) return NULL; - if (nhandles < 0 || nhandles >= MAXIMUM_WAIT_OBJECTS - 1) { + if (nhandles < 0 || nhandles > MAXIMUM_WAIT_OBJECTS - 1) { PyErr_Format(PyExc_ValueError, "need at most %zd handles, got a sequence of length %zd", MAXIMUM_WAIT_OBJECTS - 1, nhandles);