OSDN Git Service

* mmap.cc (mmap): Check for reusing a mapping only on MAP_SHARED
authorcorinna <corinna>
Thu, 8 Feb 2001 21:10:45 +0000 (21:10 +0000)
committercorinna <corinna>
Thu, 8 Feb 2001 21:10:45 +0000 (21:10 +0000)
        and on MAP_PRIVATE|MAP_ANON in the special case of offset 0.

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

index 1fa4e2c..5685b3a 100644 (file)
@@ -1,3 +1,8 @@
+Thu Feb  8 22:09:00 2001  Corinna Vinschen <corinna@vinschen.de>
+
+       * mmap.cc (mmap): Check for reusing a mapping only on MAP_SHARED
+       and on MAP_PRIVATE|MAP_ANON in the special case of offset 0.
+
 Thu Feb  8 21:57:00 2001  Corinna Vinschen <corinna@vinschen.de>
 
        * mmap.cc (class list): Add member `hash'.
index e2eab3e..42a7b69 100644 (file)
@@ -455,8 +455,9 @@ mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t off)
   list *l = mmapped_areas->get_list_by_fd (fd);
 
   /* First check if this mapping matches into the chunk of another
-     already performed mapping. Only for MAP_SHARED mapping. */
-  if (l && (flags & MAP_SHARED))
+     already performed mapping. Only valid for MAP_SHARED and for
+     MAP_ANON in a special case of MAP_PRIVATE. */
+  if (l && ((flags & MAP_SHARED) || (fd == -1 && off == 0)))
     {
       mmap_record *rec;
       if ((rec = l->match (off, len)) != NULL)