Explorar o código

Kernel: Expose region executable bit in /proc/PID/vm

Also show it in SystemMonitor's process memory map table (as 'X') :^)
Andreas Kling %!s(int64=5) %!d(string=hai) anos
pai
achega
c5c1cc817e

+ 2 - 0
Applications/SystemMonitor/ProcessMemoryMapWidget.cpp

@@ -26,6 +26,8 @@ ProcessMemoryMapWidget::ProcessMemoryMapWidget(GWidget* parent)
             builder.append('R');
             builder.append('R');
         if (object.get("writable").to_bool())
         if (object.get("writable").to_bool())
             builder.append('W');
             builder.append('W');
+        if (object.get("executable").to_bool())
+            builder.append('X');
         if (object.get("shared").to_bool())
         if (object.get("shared").to_bool())
             builder.append('S');
             builder.append('S');
         if (object.get("stack").to_bool())
         if (object.get("stack").to_bool())

+ 1 - 0
Kernel/FileSystem/ProcFS.cpp

@@ -263,6 +263,7 @@ Optional<KBuffer> procfs$pid_vm(InodeIdentifier identifier)
         auto region_object = array.add_object();
         auto region_object = array.add_object();
         region_object.add("readable", region.is_readable());
         region_object.add("readable", region.is_readable());
         region_object.add("writable", region.is_writable());
         region_object.add("writable", region.is_writable());
+        region_object.add("executable", region.is_executable());
         region_object.add("stack", region.is_stack());
         region_object.add("stack", region.is_stack());
         region_object.add("shared", region.is_shared());
         region_object.add("shared", region.is_shared());
         region_object.add("user_accessible", region.is_user_accessible());
         region_object.add("user_accessible", region.is_user_accessible());