From ab7f9b938f8f0008fe71e8c790afb7f86a267e1c Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 30 Aug 2002 15:47:10 +0000 Subject: * miscfuncs.cc (check_iovec_for_read): Don't check buffer when zero length iov_len. (check_iovec_for_write): Ditto. * fhandler.h (fhandler_base::readv): New method. (fhandler_base::writev): Ditto. * fhandler.cc (fhandler_base::readv): New method. (fhandler_base::writev): Ditto. * syscalls.cc (_read): Delegate to readv(2). (_write): Ditto, mutatis mutandi. (readv): Rewrite, based on the old _read code, to use the new fhandler_base::readv method. Improve access mode handling and ensure all calls reach the final strace statement. (writev): Ditto, mutatis mutandi. * include/sys/uio.h (struct iovec): Change field types to match SUSv3. * winsup.h (check_iovec_for_read): New function. (check_iovec_for_write): Ditto. * miscfuncs.cc (check_iovec_for_read): Ditto. (check_iovec_for_write): Ditto. --- winsup/cygwin/fhandler_socket.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/fhandler_socket.cc') diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc index 85b210752..94866e3fe 100644 --- a/winsup/cygwin/fhandler_socket.cc +++ b/winsup/cygwin/fhandler_socket.cc @@ -736,7 +736,9 @@ fhandler_socket::recvmsg (struct msghdr *msg, int flags) p = buf; while (nb > 0) { - ssize_t cnt = min(nb, iov->iov_len); + ssize_t cnt = iov->iov_len; + if (nb < cnt) + cnt = nb; memcpy (iov->iov_base, p, cnt); p += cnt; nb -= cnt; -- cgit v1.2.3