bpo-32710: Fix leak in Overlapped_WSASend() (GH-11469) · python/cpython@a234e14 (original) (raw)

2 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
1 +Fix a memory leak in asyncio in the ProactorEventLoop when ``ReadFile()`` or
2 +``WSASend()`` overlapped operation fail immediately: release the internal
3 +buffer.
Original file line number Diff line number Diff line change
@@ -723,6 +723,7 @@ do_ReadFile(OverlappedObject *self, HANDLE handle,
723 723 case ERROR_IO_PENDING:
724 724 Py_RETURN_NONE;
725 725 default:
726 +PyBuffer_Release(&self->user_buffer);
726 727 self->type = TYPE_NOT_STARTED;
727 728 return SetFromWindowsErr(err);
728 729 }
@@ -1011,6 +1012,7 @@ Overlapped_WSASend(OverlappedObject *self, PyObject *args)
1011 1012 case ERROR_IO_PENDING:
1012 1013 Py_RETURN_NONE;
1013 1014 default:
1015 +PyBuffer_Release(&self->user_buffer);
1014 1016 self->type = TYPE_NOT_STARTED;
1015 1017 return SetFromWindowsErr(err);
1016 1018 }