From 36e7733dec326425578629516dd1bf09a2e3295f Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Tue, 18 May 2021 23:40:57 +0100 Subject: [PATCH] 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. --- Userland/Services/CrashDaemon/main.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Userland/Services/CrashDaemon/main.cpp b/Userland/Services/CrashDaemon/main.cpp index db542fc02f..5f6ea14fdf 100644 --- a/Userland/Services/CrashDaemon/main.cpp +++ b/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(argv), environ))) { perror("posix_spawn"); } else {