Module: wine Branch: master Commit: 15428534d85918093ed01c169ebbf136cf9cca94 URL: http://source.winehq.org/git/wine.git/?a=commit;h=15428534d85918093ed01c169e...
Author: Damjan Jovanovic damjan.jov@gmail.com Date: Sun Jul 15 13:58:31 2007 +0200
ws2_32: Update WSASendTo's iovec properly.
---
dlls/ws2_32/socket.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 60c4e44..0a6597d 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -2717,13 +2717,11 @@ INT WINAPI WSASendTo( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, if (n > 0) { *lpNumberOfBytesSent += n; - if (iovec[first_buff].iov_len > n) - iovec[first_buff].iov_len -= n; - else - { - while (n > 0) n -= iovec[first_buff++].iov_len; - if (first_buff >= dwBufferCount) break; - } + while (first_buff < dwBufferCount && iovec[first_buff].iov_len <= n) + n -= iovec[first_buff++].iov_len; + if (first_buff >= dwBufferCount) break; + iovec[first_buff].iov_base = (char*)iovec[first_buff].iov_base + n; + iovec[first_buff].iov_len -= n; }
if (timeout != -1)