* mmap.cc (mmap): Outflank copy-on-write problem on 9x by

setting access mode to FILE_MAP_READ when read access is requested.
This commit is contained in:
Corinna Vinschen 2001-03-26 18:17:15 +00:00
parent aa73152ef7
commit 1636a5a1e8
2 changed files with 10 additions and 1 deletions

View File

@ -1,5 +1,11 @@
Mon Mar 26 18:48:00 2001 Corinna Vinschen <corinna@vinschen.de>
* mmap.cc (mmap): Outflank copy-on-write problem on 9x by
setting access mode to FILE_MAP_READ when read access is requested.
Sun Mar 25 20:12:21 2001 Christopher Faylor <cgf@cygnus.com>
* dlfcn.cc (check_access): Eliminate.
(check_path_access): Use passed in path_conv buf.
(get_full_path_of_dll): Use passed in name buf to avoid a static. Rip

View File

@ -380,7 +380,10 @@ mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t off)
}
DWORD access = (prot & PROT_WRITE) ? FILE_MAP_WRITE : FILE_MAP_READ;
if (flags & MAP_PRIVATE)
/* copy-on-write doesn't work correctly on 9x. To have at least read
access we use *READ mapping on 9x when appropriate. It will still
fail when needing write access, though. */
if ((flags & MAP_PRIVATE) && (os_being_run == winNT || !(prot & PROT_READ)))
access = FILE_MAP_COPY;
SetResourceLock(LOCK_MMAP_LIST,READ_LOCK|WRITE_LOCK," mmap");