Преглед на файлове

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

When setting up profiling, don't assume that the profiled process has
a valid executable.
Andreas Kling преди 5 години
родител
ревизия
79e79ad1d2
променени са 1 файла, в които са добавени 4 реда и са изтрити 5 реда
  1. 4 5
      Kernel/Profiling.cpp

+ 4 - 5
Kernel/Profiling.cpp

@@ -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)