chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
main: install crash handler in all signals that usually dump core
[elogind.git]
/
main.c
diff --git
a/main.c
b/main.c
index 68a90210839f127748f29d465d35966cf7d79185..9323d45f739fd62240b599dc184d608d6f6ccb3f 100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-127,6
+127,10
@@
static void install_crash_handler(void) {
sa.sa_flags = SA_NODEFER;
assert_se(sigaction(SIGSEGV, &sa, NULL) == 0);
sa.sa_flags = SA_NODEFER;
assert_se(sigaction(SIGSEGV, &sa, NULL) == 0);
+ assert_se(sigaction(SIGILL, &sa, NULL) == 0);
+ assert_se(sigaction(SIGFPE, &sa, NULL) == 0);
+ assert_se(sigaction(SIGBUS, &sa, NULL) == 0);
+ assert_se(sigaction(SIGQUIT, &sa, NULL) == 0);
assert_se(sigaction(SIGABRT, &sa, NULL) == 0);
}
assert_se(sigaction(SIGABRT, &sa, NULL) == 0);
}
@@
-427,7
+431,8
@@
int main(int argc, char *argv[]) {
log_open_syslog();
log_open_kmsg();
log_open_syslog();
log_open_kmsg();
- /* Make sure we leave a core dump */
+ /* Make sure we leave a core dump without panicing the
+ * kernel. */
if (getpid() == 1)
install_crash_handler();
if (getpid() == 1)
install_crash_handler();