diff options
Diffstat (limited to 'winsup/cygwin/fhandler.cc')
-rw-r--r-- | winsup/cygwin/fhandler.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index a8a27862a..6931cb6bc 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -969,7 +969,7 @@ fhandler_base::readv (const struct iovec *const iov, const int iovcnt, if (!len) return 0; - char *buf = (char *) malloc (tot); + char *buf = (char *) malloc (len); if (!buf) { @@ -982,11 +982,12 @@ fhandler_base::readv (const struct iovec *const iov, const int iovcnt, const struct iovec *iovptr = iov; + char *p = buf; while (nbytes > 0) { const int frag = min (nbytes, (ssize_t) iovptr->iov_len); - memcpy (iovptr->iov_base, buf, frag); - buf += frag; + memcpy (iovptr->iov_base, p, frag); + p += frag; iovptr += 1; nbytes -= frag; } |