Skip to content

Commit 23f427a

Browse files
ahcubvstinner
authored andcommitted
[3.6] bpo-34563: Fix for invalid assert on big output of multiprocessing.Process (GH-9027) (GH-9069)
Fix for invalid assert on big output of multiprocessing.Process. (cherry picked from commit 266f490)
1 parent 3ee0743 commit 23f427a

3 files changed

Lines changed: 10 additions & 9 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
On Windows, fix multiprocessing.Connection for very large read: fix _winapi.PeekNamedPipe() and _winapi.ReadFile() for read larger than INT_MAX (usually 2^31-1).

Modules/_winapi.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,7 +1167,7 @@ _winapi_PeekNamedPipe_impl(PyObject *module, HANDLE handle, int size)
11671167
}
11681168
if (_PyBytes_Resize(&buf, nread))
11691169
return NULL;
1170-
return Py_BuildValue("Nii", buf, navail, nleft);
1170+
return Py_BuildValue("NII", buf, navail, nleft);
11711171
}
11721172
else {
11731173
Py_BEGIN_ALLOW_THREADS
@@ -1176,22 +1176,22 @@ _winapi_PeekNamedPipe_impl(PyObject *module, HANDLE handle, int size)
11761176
if (!ret) {
11771177
return PyErr_SetExcFromWindowsErr(PyExc_IOError, 0);
11781178
}
1179-
return Py_BuildValue("ii", navail, nleft);
1179+
return Py_BuildValue("II", navail, nleft);
11801180
}
11811181
}
11821182

11831183
/*[clinic input]
11841184
_winapi.ReadFile
11851185
11861186
handle: HANDLE
1187-
size: int
1187+
size: DWORD
11881188
overlapped as use_overlapped: int(c_default='0') = False
11891189
[clinic start generated code]*/
11901190

11911191
static PyObject *
1192-
_winapi_ReadFile_impl(PyObject *module, HANDLE handle, int size,
1192+
_winapi_ReadFile_impl(PyObject *module, HANDLE handle, DWORD size,
11931193
int use_overlapped)
1194-
/*[clinic end generated code: output=492029ca98161d84 input=8dd810194e86ac7d]*/
1194+
/*[clinic end generated code: output=d3d5b44a8201b944 input=1b7d0ed0de1e50bc]*/
11951195
{
11961196
DWORD nread;
11971197
PyObject *buf;

Modules/clinic/_winapi.c.h

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)