Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37800067
en ru br
ALT Linux repos
S:5.110.0-alt1

Group :: System/Libraries
RPM: kf5-kcrash

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: alt-catch-sigterm.patch
Download


--- a/kcrash/src/kcrash.cpp
+++ b/kcrash/src/kcrash.cpp
@@ -363,6 +363,10 @@ KCrash::setCrashHandler(HandlerType hand
     sigset_t mask;
     sigemptyset(&mask);
 
+#ifdef SIGTERM
+    signal(SIGTERM, handler);
+    sigaddset(&mask, SIGTERM);
+#endif
 #ifdef SIGSEGV
     signal(SIGSEGV, handler);
     sigaddset(&mask, SIGSEGV);
@@ -430,7 +434,7 @@ KCrash::defaultCrashHandler(int sig)
         if (s_emergencySaveFunction) {
             s_emergencySaveFunction(sig);
         }
-        if ((s_flags & AutoRestart) && s_autoRestartCommandLine) {
+        if ((s_flags & AutoRestart) && s_autoRestartCommandLine && (sig != SIGTERM || !strcmp((s_appName ? s_appName.get() : "<unknown>"), "plasmashell"))) {
             QThread::sleep(1);
             startProcess(s_autoRestartCommandLine.argc, const_cast<const char **>(s_autoRestartCommandLine.argv), false);
         }
@@ -465,7 +469,7 @@ KCrash::defaultCrashHandler(int sig)
                 s_appName ? s_appName.get() : "<unknown>");
 #endif
 
-        if (s_launchDrKonqi != 1) {
+        if (sig == SIGTERM || s_launchDrKonqi != 1) {
             setCrashHandler(nullptr);
 #if !defined(Q_OS_WIN)
             raise(sig); // dump core, or whatever is the default action for this signal.
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin