瀏覽代碼

CrashDaemon: Fix CrashReporter argument order

For compressed coredumps, CrashReporter's argv were in this order:

    CrashReporter path --unlink

Core::ArgsParser doesn't like that at all and would immediately exit
from main(), causing the crash reporter to never display.
Linus Groh 4 年之前
父節點
當前提交
36e7733dec
共有 1 個文件被更改,包括 9 次插入1 次删除
  1. 9 1
      Userland/Services/CrashDaemon/main.cpp

+ 9 - 1
Userland/Services/CrashDaemon/main.cpp

@@ -84,7 +84,15 @@ static void print_backtrace(const String& coredump_path)
 static void launch_crash_reporter(const String& coredump_path, bool unlink_after_use)
 {
     pid_t child;
-    const char* argv[] = { "CrashReporter", coredump_path.characters(), unlink_after_use ? "--unlink" : nullptr, nullptr, nullptr };
+    const char* argv[4] = { "CrashReporter" };
+    if (unlink_after_use) {
+        argv[1] = "--unlink";
+        argv[2] = coredump_path.characters();
+        argv[3] = nullptr;
+    } else {
+        argv[1] = coredump_path.characters();
+        argv[2] = nullptr;
+    }
     if ((errno = posix_spawn(&child, "/bin/CrashReporter", nullptr, nullptr, const_cast<char**>(argv), environ))) {
         perror("posix_spawn");
     } else {