diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2017-01-19 23:08:53 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2017-01-19 23:08:53 +0300 |
commit | e2ab9b71fa49b5295fe7387e18e37b6d81d7ddc2 (patch) | |
tree | a51787a0ce4102646f222ee2f44ccef70a8f8e79 /winsup/cygwin/miscfuncs.cc | |
parent | abfcf32732bd9110e66373fe0d6119133ebb1d15 (diff) |
Don't assert on sum of iov_len overflowing an ssize_t
Rather return EINVAL per POSIX.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/miscfuncs.cc')
-rw-r--r-- | winsup/cygwin/miscfuncs.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc index 1276695d6..e042d0082 100644 --- a/winsup/cygwin/miscfuncs.cc +++ b/winsup/cygwin/miscfuncs.cc @@ -10,7 +10,6 @@ details. */ #include "miscfuncs.h" #include <ntsecapi.h> #include <sys/uio.h> -#include <assert.h> #include <alloca.h> #include <limits.h> #include <sys/param.h> @@ -81,9 +80,10 @@ check_iovec (const struct iovec *iov, int iovcnt, bool forwrite) iovcnt--; } - assert (tot <= SSIZE_MAX); + if (tot <= SSIZE_MAX) + return (ssize_t) tot; - return (ssize_t) tot; + set_errno (EINVAL); } __except (EFAULT) __endtry |