syscall_mmap() bugfix

it wasn't accepting mappings with MAP_FIXED flags
This commit is contained in:
Matheus
2022-08-19 20:33:44 -03:00
parent d8d5f44d8e
commit af3e62d37c
+2 -3
View File
@@ -56,7 +56,7 @@ syscallret syscall_mmap(void* hint, size_t len, int prot, int flags, int fd, off
return retv;
}
if(flags != (MAP_ANON | MAP_PRIVATE)){
if((flags & (MAP_ANON | MAP_PRIVATE)) != (MAP_ANON | MAP_PRIVATE)){
retv.errno = ENOSYS;
return retv;
@@ -81,8 +81,7 @@ syscallret syscall_mmap(void* hint, size_t len, int prot, int flags, int fd, off
if(hint)
ret = vmm_allocnowat(hint, mmuflags, len) ? hint : NULL; // TODO demand page
if(!ret && !(flags & MAP_FIXED))
if(ret == NULL && (flags & MAP_FIXED) == 0)
ret = vmm_allocfrom(USER_ALLOC_START, mmuflags, plen);
if(!ret){