Procházet zdrojové kódy

Kernel: Mask kernel addresses in perf event streams for non-superuser

We now turn kernel addresses into 0xdeadc0de, same as /proc/PID/stacks/
Andreas Kling před 3 roky
rodič
revize
1cdc7aa038
1 změnil soubory, kde provedl 4 přidání a 1 odebrání
  1. 4 1
      Kernel/PerformanceEventBuffer.cpp

+ 4 - 1
Kernel/PerformanceEventBuffer.cpp

@@ -286,7 +286,10 @@ ErrorOr<void> PerformanceEventBuffer::to_json_impl(Serializer& object) const
             seen_first_sample = true;
         auto stack_array = event_object.add_array("stack");
         for (size_t j = 0; j < event.stack_size; ++j) {
-            stack_array.add(event.stack[j]);
+            auto address = event.stack[j];
+            if (!show_kernel_addresses && !Memory::is_user_address(VirtualAddress { address }))
+                address = 0xdeadc0de;
+            stack_array.add(address);
         }
         stack_array.finish();
         event_object.finish();