OSDN Git Service

* mmap.cc (fixup_mmaps_after_fork): Add ERROR_NOACCESS to the list of
authorcorinna <corinna>
Thu, 16 Jan 2003 14:11:09 +0000 (14:11 +0000)
committercorinna <corinna>
Thu, 16 Jan 2003 14:11:09 +0000 (14:11 +0000)
ReadProcessMemory() error codes that trigger a retry with temporary
PAGE_READONLY access.  Note that this can occur on NT 4.0.

winsup/cygwin/ChangeLog
winsup/cygwin/mmap.cc

index 956a7fb..e9c3a20 100644 (file)
@@ -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
index d1fe5d7..37b8faf 100644 (file)
@@ -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",