From f9e19c093165d7c75bd9d04204845ed53b8ff0a8 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 25 Feb 2004 10:54:31 +0000 Subject: * miscfuncs.cc (check_invalid_virtual_addr): New function. * winsup.h (check_invalid_virtual_addr): Declare. * mmap.cc (munmap): Call check_invalid_virtual_addr instead of IsBadReadPtr. --- winsup/cygwin/miscfuncs.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'winsup/cygwin/miscfuncs.cc') 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) { -- cgit v1.2.3