summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ntpd/constraint.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/ntpd/constraint.c')
-rw-r--r--usr.sbin/ntpd/constraint.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr.sbin/ntpd/constraint.c b/usr.sbin/ntpd/constraint.c
index 2e48cf7f610..4b35a67fa2a 100644
--- a/usr.sbin/ntpd/constraint.c
+++ b/usr.sbin/ntpd/constraint.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: constraint.c,v 1.11 2015/05/21 14:24:43 reyk Exp $ */
+/* $OpenBSD: constraint.c,v 1.12 2015/05/28 21:34:36 deraadt Exp $ */
/*
* Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org>
@@ -250,7 +250,7 @@ constraint_check_child(void)
{
struct constraint *cstr;
int status;
- int fail;
+ int fail, sig;
pid_t pid;
do {
@@ -258,9 +258,9 @@ constraint_check_child(void)
if (pid <= 0)
continue;
- fail = 0;
+ fail = sig = 0;
if (WIFSIGNALED(status)) {
- fail = 1;
+ sig = WTERMSIG(status);
} else if (WIFEXITED(status)) {
if (WEXITSTATUS(status) != 0)
fail = 1;
@@ -268,6 +268,10 @@ constraint_check_child(void)
fatalx("unexpected cause of SIGCHLD");
if ((cstr = constraint_bypid(pid)) != NULL) {
+ if (sig)
+ fatalx("constraint %s, signal %d",
+ log_sockaddr((struct sockaddr *)
+ &cstr->addr->ss), sig);
if (fail) {
log_debug("no constraint reply from %s"
" received in time, next query %ds",