From f2abf3173b6993f20f3133372600a17dff607298 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 30 Jun 2005 17:00:10 +0000 Subject: * fhandler.cc (fhandler_base::readv): Use malloc/free instead of alloca. (fhandler_base::writev): Ditto. --- winsup/cygwin/fhandler.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'winsup/cygwin/fhandler.cc') diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 2f034007a..e5e08b0b9 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -970,7 +970,7 @@ fhandler_base::readv (const struct iovec *const iov, const int iovcnt, if (!len) return 0; - char *buf = (char *) alloca (tot); + char *buf = (char *) malloc (tot); if (!buf) { @@ -992,6 +992,7 @@ fhandler_base::readv (const struct iovec *const iov, const int iovcnt, nbytes -= frag; } + free (buf); return len; } @@ -1022,7 +1023,7 @@ fhandler_base::writev (const struct iovec *const iov, const int iovcnt, if (tot == 0) return 0; - char *const buf = (char *) alloca (tot); + char *const buf = (char *) malloc (tot); if (!buf) { @@ -1042,8 +1043,9 @@ fhandler_base::writev (const struct iovec *const iov, const int iovcnt, iovptr += 1; nbytes -= frag; } - - return write (buf, tot); + ssize_t ret = write (buf, tot); + free (buf); + return ret; } _off64_t -- cgit v1.2.3