diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | openbsd-compat/port-solaris.c | 19 |
2 files changed, 22 insertions, 6 deletions
@@ -1,3 +1,10 @@ | |||
1 | 20061101 | ||
2 | - (dtucker) [openbsd-compat/port-solaris.c] Bug #1255: Make only hwerr | ||
3 | events fatal in Solaris process contract support and tell it to signal | ||
4 | only processes in the same process group when something happens. | ||
5 | Based on information from andrew.benham at thus.net and similar to | ||
6 | a patch from Chad Mynhier. ok djm@ | ||
7 | |||
1 | 20061027 | 8 | 20061027 |
2 | - (djm) [auth.c] gc some dead code | 9 | - (djm) [auth.c] gc some dead code |
3 | 10 | ||
@@ -2571,4 +2578,4 @@ | |||
2571 | OpenServer 6 and add osr5bigcrypt support so when someone migrates | 2578 | OpenServer 6 and add osr5bigcrypt support so when someone migrates |
2572 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ | 2579 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ |
2573 | 2580 | ||
2574 | $Id: ChangeLog,v 1.4580 2006/10/27 15:10:15 djm Exp $ | 2581 | $Id: ChangeLog,v 1.4581 2006/10/31 23:28:49 dtucker Exp $ |
diff --git a/openbsd-compat/port-solaris.c b/openbsd-compat/port-solaris.c index f57433e78..2ab64d487 100644 --- a/openbsd-compat/port-solaris.c +++ b/openbsd-compat/port-solaris.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $Id: port-solaris.c,v 1.2 2006/09/01 05:38:41 djm Exp $ */ | 1 | /* $Id: port-solaris.c,v 1.3 2006/10/31 23:28:49 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2006 Chad Mynhier. | 4 | * Copyright (c) 2006 Chad Mynhier. |
@@ -86,18 +86,27 @@ solaris_contract_pre_fork(void) | |||
86 | debug2("%s: setting up process contract template on fd %d", | 86 | debug2("%s: setting up process contract template on fd %d", |
87 | __func__, tmpl_fd); | 87 | __func__, tmpl_fd); |
88 | 88 | ||
89 | /* We have to set certain attributes before activating the template */ | 89 | /* First we set the template parameters and event sets. */ |
90 | if (ct_pr_tmpl_set_fatal(tmpl_fd, | 90 | if (ct_pr_tmpl_set_param(tmpl_fd, CT_PR_PGRPONLY) != 0) { |
91 | CT_PR_EV_HWERR|CT_PR_EV_SIGNAL|CT_PR_EV_CORE) != 0) { | 91 | error("%s: Error setting process contract parameter set " |
92 | "(pgrponly): %s", __func__, strerror(errno)); | ||
93 | goto fail; | ||
94 | } | ||
95 | if (ct_pr_tmpl_set_fatal(tmpl_fd, CT_PR_EV_HWERR) != 0) { | ||
92 | error("%s: Error setting process contract template " | 96 | error("%s: Error setting process contract template " |
93 | "fatal events: %s", __func__, strerror(errno)); | 97 | "fatal events: %s", __func__, strerror(errno)); |
94 | goto fail; | 98 | goto fail; |
95 | } | 99 | } |
96 | if (ct_tmpl_set_critical(tmpl_fd, CT_PR_EV_HWERR) != 0) { | 100 | if (ct_tmpl_set_critical(tmpl_fd, 0) != 0) { |
97 | error("%s: Error setting process contract template " | 101 | error("%s: Error setting process contract template " |
98 | "critical events: %s", __func__, strerror(errno)); | 102 | "critical events: %s", __func__, strerror(errno)); |
99 | goto fail; | 103 | goto fail; |
100 | } | 104 | } |
105 | if (ct_tmpl_set_informative(tmpl_fd, CT_PR_EV_HWERR) != 0) { | ||
106 | error("%s: Error setting process contract template " | ||
107 | "informative events: %s", __func__, strerror(errno)); | ||
108 | goto fail; | ||
109 | } | ||
101 | 110 | ||
102 | /* Now make this the active template for this process. */ | 111 | /* Now make this the active template for this process. */ |
103 | if (ct_tmpl_activate(tmpl_fd) != 0) { | 112 | if (ct_tmpl_activate(tmpl_fd) != 0) { |