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
Notes: sideshowbarker 2024-07-19 09:02:36 +09:00

View file

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