瀏覽代碼

Kernel: Disable profiling if setting up the buffer or timer failed

Gunnar Beutner 4 年之前
父節點
當前提交
ad6587424f
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      Kernel/Syscalls/profiling.cpp

+ 6 - 2
Kernel/Syscalls/profiling.cpp

@@ -53,10 +53,14 @@ KResultOr<int> Process::sys$profiling_enable(pid_t pid, u64 event_mask)
         return EPERM;
     g_profiling_event_mask = event_mask;
     process->set_profiling(true);
-    if (!process->create_perf_events_buffer_if_needed())
+    if (!process->create_perf_events_buffer_if_needed()) {
+        process->set_profiling(false);
         return ENOMEM;
-    if (!TimeManagement::the().enable_profile_timer())
+    }
+    if (!TimeManagement::the().enable_profile_timer()) {
+        process->set_profiling(false);
         return ENOTSUP;
+    }
     return 0;
 }