From 1cdc7aa0387bc4fe68a39b2e96519cf4269f6227 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 19 Dec 2021 16:41:07 +0100 Subject: [PATCH] Kernel: Mask kernel addresses in perf event streams for non-superuser We now turn kernel addresses into 0xdeadc0de, same as /proc/PID/stacks/ --- Kernel/PerformanceEventBuffer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Kernel/PerformanceEventBuffer.cpp b/Kernel/PerformanceEventBuffer.cpp index 38c04fe14f..d3d8901e08 100644 --- a/Kernel/PerformanceEventBuffer.cpp +++ b/Kernel/PerformanceEventBuffer.cpp @@ -286,7 +286,10 @@ ErrorOr 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();