diff options
Diffstat (limited to 'winsup/cygwin/miscfuncs.cc')
-rw-r--r-- | winsup/cygwin/miscfuncs.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc index 4207c4d1a..7947365f4 100644 --- a/winsup/cygwin/miscfuncs.cc +++ b/winsup/cygwin/miscfuncs.cc @@ -214,6 +214,18 @@ __check_invalid_read_ptr_errno (const void *s, unsigned sz) return set_errno (EFAULT); } +int __stdcall +check_invalid_virtual_addr (const void *s, unsigned sz) +{ + MEMORY_BASIC_INFORMATION mbuf; + void *end; + + for (end = (char *) s + sz; s < end; s = (char *) s + mbuf.RegionSize) + if (!VirtualQuery (s, &mbuf, sizeof mbuf)) + return EINVAL; + return 0; +} + ssize_t check_iovec_for_read (const struct iovec *iov, int iovcnt) { |