Module: wine Branch: master Commit: 48656f5596beecd956be60661d5a8e6eab24e09b URL: http://source.winehq.org/git/wine.git/?a=commit;h=48656f5596beecd956be60661d...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Jul 9 15:21:30 2009 +0200
ws2_32: Check buffers before recvmsg() to trigger write watches.
---
dlls/ws2_32/socket.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 5516260..464e890 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -4409,6 +4409,12 @@ INT WINAPI WSARecvFrom( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, wsa->first_iovec = 0; for (i = 0; i < dwBufferCount; i++) { + /* check buffer first to trigger write watches */ + if (IsBadWritePtr( lpBuffers[i].buf, lpBuffers[i].len )) + { + err = WSAEFAULT; + goto error; + } wsa->iovec[i].iov_base = lpBuffers[i].buf; wsa->iovec[i].iov_len = lpBuffers[i].len; }