1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 13:27:35 +00:00

Kernel: Don't blindly dereference Process::executable()

When setting up profiling, don't assume that the profiled process has
a valid executable.
This commit is contained in:
Andreas Kling 2020-02-27 10:41:32 +01:00
parent 9632388bed
commit 79e79ad1d2

View file

@ -40,7 +40,6 @@ namespace Profiling {
static KBufferImpl* s_profiling_buffer; static KBufferImpl* s_profiling_buffer;
static size_t s_slot_count; static size_t s_slot_count;
static size_t s_next_slot_index; static size_t s_next_slot_index;
static Process* s_process;
static u32 s_pid; static u32 s_pid;
String& executable_path() String& executable_path()
@ -58,9 +57,10 @@ u32 pid()
void start(Process& process) void start(Process& process)
{ {
s_process = &process; if (process.executable())
executable_path() = process.executable()->absolute_path().impl();
executable_path() = process.executable()->absolute_path().impl(); else
executable_path() = {};
s_pid = process.pid(); s_pid = process.pid();
if (!s_profiling_buffer) { if (!s_profiling_buffer) {
@ -87,7 +87,6 @@ Sample& next_sample_slot()
void stop() void stop()
{ {
s_process = nullptr;
} }
void did_exec(const String& new_executable_path) void did_exec(const String& new_executable_path)