bpo-32710: Fix leak in Overlapped_WSASend() (GH-11469)
Fix a memory leak in asyncio in the ProactorEventLoop when ReadFile()
or WSASend() overlapped operation fail immediately: release the
internal buffer.
(cherry picked from commit a234e14839
)
Co-authored-by: Victor Stinner <vstinner@redhat.com>
This commit is contained in:
parent
69f64b67e4
commit
88ad48bc98
|
@ -0,0 +1,3 @@
|
|||
Fix a memory leak in asyncio in the ProactorEventLoop when ``ReadFile()`` or
|
||||
``WSASend()`` overlapped operation fail immediately: release the internal
|
||||
buffer.
|
|
@ -723,6 +723,7 @@ do_ReadFile(OverlappedObject *self, HANDLE handle,
|
|||
case ERROR_IO_PENDING:
|
||||
Py_RETURN_NONE;
|
||||
default:
|
||||
PyBuffer_Release(&self->user_buffer);
|
||||
self->type = TYPE_NOT_STARTED;
|
||||
return SetFromWindowsErr(err);
|
||||
}
|
||||
|
@ -1011,6 +1012,7 @@ Overlapped_WSASend(OverlappedObject *self, PyObject *args)
|
|||
case ERROR_IO_PENDING:
|
||||
Py_RETURN_NONE;
|
||||
default:
|
||||
PyBuffer_Release(&self->user_buffer);
|
||||
self->type = TYPE_NOT_STARTED;
|
||||
return SetFromWindowsErr(err);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue