Quellcode durchsuchen

Kernel: mmap() with both MAP_PRIVATE and MAP_SHARED is an error

Andreas Kling vor 5 Jahren
Ursprung
Commit
3d4ed7f38d
1 geänderte Dateien mit 2 neuen und 0 gelöschten Zeilen
  1. 2 0
      Kernel/Process.cpp

+ 2 - 0
Kernel/Process.cpp

@@ -206,6 +206,8 @@ void* Process::sys$mmap(const Syscall::SC_mmap_params* params)
         return (void*)-EINVAL;
     if ((u32)addr & ~PAGE_MASK)
         return (void*)-EINVAL;
+    if ((flags & MAP_SHARED) && (flags & MAP_PRIVATE))
+        return (void*)-EINVAL;
     if (flags & MAP_ANONYMOUS) {
         auto* region = allocate_region(VirtualAddress((u32)addr), size, name ? name : "mmap", prot, false);
         if (!region)