sys_mmap(): correct initial address check

This commit is contained in:
Balazs Gerofi
2016-08-18 07:32:31 +09:00
parent 5fd68eae54
commit bd6a2c2311

View File

@@ -1434,9 +1434,8 @@ SYSCALL_DECLARE(mmap)
goto out; goto out;
} }
if ((addr < region->user_start) if ((flags & MAP_FIXED) && ((addr < region->user_start)
|| (region->user_end <= addr) || (region->user_end <= addr))) {
|| ((region->user_end - addr) < len)) {
ekprintf("sys_mmap(%lx,%lx,%x,%x,%x,%lx):ENOMEM\n", ekprintf("sys_mmap(%lx,%lx,%x,%x,%x,%lx):ENOMEM\n",
addr0, len0, prot, flags0, fd, off0); addr0, len0, prot, flags0, fd, off0);
error = -ENOMEM; error = -ENOMEM;