It appears that ReadProcessMemory() can fail with ERROR_NOACCESS under NT 4.0. See attached patch.
BTW, my mmap-test test case works under NT 4.0 without this patch. However, vsFTPd does not. Go figure! Thanks, Jason -- PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6
Index: mmap.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/mmap.cc,v retrieving revision 1.68 diff -u -p -r1.68 mmap.cc --- mmap.cc 15 Jan 2003 10:21:23 -0000 1.68 +++ mmap.cc 15 Jan 2003 18:51:30 -0000 @@ -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",
2003-01-15 Jason Tishler <[EMAIL PROTECTED]> * 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.