mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-02 07:28:21 +00:00
syscall_mmap() bugfix
it wasn't accepting mappings with MAP_FIXED flags
This commit is contained in:
@@ -56,7 +56,7 @@ syscallret syscall_mmap(void* hint, size_t len, int prot, int flags, int fd, off
|
|||||||
return retv;
|
return retv;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(flags != (MAP_ANON | MAP_PRIVATE)){
|
if((flags & (MAP_ANON | MAP_PRIVATE)) != (MAP_ANON | MAP_PRIVATE)){
|
||||||
retv.errno = ENOSYS;
|
retv.errno = ENOSYS;
|
||||||
return retv;
|
return retv;
|
||||||
|
|
||||||
@@ -81,8 +81,7 @@ syscallret syscall_mmap(void* hint, size_t len, int prot, int flags, int fd, off
|
|||||||
|
|
||||||
if(hint)
|
if(hint)
|
||||||
ret = vmm_allocnowat(hint, mmuflags, len) ? hint : NULL; // TODO demand page
|
ret = vmm_allocnowat(hint, mmuflags, len) ? hint : NULL; // TODO demand page
|
||||||
|
if(ret == NULL && (flags & MAP_FIXED) == 0)
|
||||||
if(!ret && !(flags & MAP_FIXED))
|
|
||||||
ret = vmm_allocfrom(USER_ALLOC_START, mmuflags, plen);
|
ret = vmm_allocfrom(USER_ALLOC_START, mmuflags, plen);
|
||||||
|
|
||||||
if(!ret){
|
if(!ret){
|
||||||
|
|||||||
Reference in New Issue
Block a user