mirror of
https://github.com/RGBCube/serenity
synced 2025-05-26 01:45:06 +00:00
Kernel: Return one kernel frame from procfs$tid_stack for normal users.
Previously we would return a 0xdeadc0de frame for every kernel frame in the real kernel stack when an non super-user issued the request. This isn't useful, and just produces visual clutter in tools which attempt to symbolize stacks.
This commit is contained in:
parent
869becc944
commit
35bb8ab4db
1 changed files with 6 additions and 1 deletions
|
@ -599,9 +599,14 @@ static bool procfs$tid_stack(InodeIdentifier identifier, KBufferBuilder& builder
|
||||||
|
|
||||||
JsonArraySerializer array { builder };
|
JsonArraySerializer array { builder };
|
||||||
bool show_kernel_addresses = Process::current()->is_superuser();
|
bool show_kernel_addresses = Process::current()->is_superuser();
|
||||||
|
bool kernel_address_added = false;
|
||||||
for (auto address : Processor::capture_stack_trace(*thread, 1024)) {
|
for (auto address : Processor::capture_stack_trace(*thread, 1024)) {
|
||||||
if (!show_kernel_addresses && !is_user_address(VirtualAddress { address }))
|
if (!show_kernel_addresses && !is_user_address(VirtualAddress { address })) {
|
||||||
|
if (kernel_address_added)
|
||||||
|
continue;
|
||||||
address = 0xdeadc0de;
|
address = 0xdeadc0de;
|
||||||
|
kernel_address_added = true;
|
||||||
|
}
|
||||||
array.add(JsonValue(address));
|
array.add(JsonValue(address));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue