* mmap.cc (msync): Disable rounding up len. Fix bug in access check

loop.
This commit is contained in:
Corinna Vinschen 2006-07-19 08:58:09 +00:00
parent ef4954b62d
commit add2f65f37
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2006-07-19 Corinna Vinschen <corinna@vinschen.de>
* mmap.cc (msync): Disable rounding up len. Fix bug in access check
loop.
2006-07-19 Corinna Vinschen <corinna@vinschen.de> 2006-07-19 Corinna Vinschen <corinna@vinschen.de>
* path.cc (symlink_worker): Return EEXIST if newpath exists. * path.cc (symlink_worker): Return EEXIST if newpath exists.

View File

@ -1352,7 +1352,9 @@ msync (void *addr, size_t len, int flags)
set_errno (EINVAL); set_errno (EINVAL);
goto out; goto out;
} }
#if 0 /* If I only knew why I did that... */
len = roundup2 (len, pagesize); len = roundup2 (len, pagesize);
#endif
/* Iterate through the map, looking for the mmapped area. /* Iterate through the map, looking for the mmapped area.
Error if not found. */ Error if not found. */
@ -1368,7 +1370,7 @@ msync (void *addr, size_t len, int flags)
if (rec->access ((caddr_t)addr)) if (rec->access ((caddr_t)addr))
{ {
/* Check whole area given by len. */ /* Check whole area given by len. */
for (DWORD i = getpagesize (); i < len; ++i) for (DWORD i = getpagesize (); i < len; i += getpagesize ())
if (!rec->access ((caddr_t)addr + i)) if (!rec->access ((caddr_t)addr + i))
{ {
set_errno (ENOMEM); set_errno (ENOMEM);