Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-01-16 17:11:10 +0300
committerCorinna Vinschen <corinna@vinschen.de>2003-01-16 17:11:10 +0300
commit41429bc99b584a94e167f1421533285e1171c13a (patch)
tree8bfff9cac61d441e0fd0d7a16c7abe9a9a5a4e72
parent0036d6bdaace3e1d12cdac0f27bc396248914dba (diff)
* mmap.cc (fixup_mmaps_after_fork): Add ERROR_NOACCESS to the list of
ReadProcessMemory() error codes that trigger a retry with temporary PAGE_READONLY access. Note that this can occur on NT 4.0.
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/mmap.cc6
2 files changed, 10 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 956a7fb1a..e9c3a2077 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2003-01-16 Jason Tishler <jason@tishler.net>
+
+ * mmap.cc (fixup_mmaps_after_fork): Add ERROR_NOACCESS to the list of
+ ReadProcessMemory() error codes that trigger a retry with temporary
+ PAGE_READONLY access. Note that this can occur on NT 4.0.
+
2003-01-15 Christopher Faylor <cgf@redhat.com>
* path.cc (normalize_posix_path): Convert win32 path separators to
diff --git a/winsup/cygwin/mmap.cc b/winsup/cygwin/mmap.cc
index d1fe5d761..37b8fafb5 100644
--- a/winsup/cygwin/mmap.cc
+++ b/winsup/cygwin/mmap.cc
@@ -986,9 +986,11 @@ fixup_mmaps_after_fork (HANDLE parent)
getpagesize (), NULL))
{
DWORD old_prot;
+ DWORD last_error = GetLastError ();
- if (GetLastError () != ERROR_PARTIAL_COPY ||
- !wincap.virtual_protect_works_on_shared_pages ())
+ if (last_error != ERROR_PARTIAL_COPY
+ && last_error != ERROR_NOACCESS
+ || !wincap.virtual_protect_works_on_shared_pages ())
{
system_printf ("ReadProcessMemory failed for "
"MAP_PRIVATE address %p, %E",