[krbdev.mit.edu #1304] kadmind4
The RT System itself via RT
rt-comment at krbdev.mit.edu
Wed Jan 8 16:49:18 EST 2003
>From john at kerberos-1.iastate.edu Wed Jan 8 16:49:14 2003
Received: from pacific-carrier-annex.mit.edu (PACIFIC-CARRIER-ANNEX.MIT.EDU [18.7.21.83]) by krbdev.mit.edu (8.9.3) with ESMTP
id QAA02160; Wed, 8 Jan 2003 16:49:14 -0500 (EST)
From: john at kerberos-1.iastate.edu
Received: from kerberos-1.iastate.edu (kerberos-1.iastate.edu [129.186.140.201])
by pacific-carrier-annex.mit.edu (8.9.2/8.9.2) with ESMTP id QAA19673
for <krb5-bugs at mit.edu>; Wed, 8 Jan 2003 16:49:13 -0500 (EST)
Received: (from root at localhost)
by kerberos-1.iastate.edu (8.11.6/8.11.6) id h08LnC629964;
Wed, 8 Jan 2003 15:49:12 -0600 (CST)
Date: Wed, 8 Jan 2003 15:49:12 -0600 (CST)
Message-Id: <200301082149.h08LnC629964 at kerberos-1.iastate.edu>
To: krb5-bugs at mit.edu
Subject: killing kadmind4's zombie children
Reply-To: john at kerberos-1.iastate.edu
X-send-pr-version: 3.99
>Submitter-Id: net
>Originator: john at iastate.edu
>Organization:
The Office of Academic Information Technologies
Iowa State University of Science and Technology
>Confidential: no
>Synopsis: kadmind4
>Severity: serious
>Priority: medium
>Category: krb5-admin
>Class:
>Release: krb5-1.2.6
>Environment:
System: NetBSD kerberos-1.iastate.edu 1.6_STABLE NetBSD 1.6_STABLE (KERBEROS) #2: Fri Dec 20 14:19:28 CST 2002 root at aurora.ait.iastate.edu:/usr/NetBSD/kernels/compile/KERBEROS i386
>Description:
kadmind4 was leaving a zombie process for every (change password)
request.
>How-To-Repeat:
(see fix below)
>Fix:
Need to make sure that the 'struct sigaction' is properly initialized,
else the success/failure of the sigaction() call is non-deterministic.
To wit (in routine kadm_listen in admin_server.c):
#ifdef POSIX_SIGNALS
struct sigaction new_act;
memset(&new_act, 0, sizeof(new_act)); /* ADD THIS LINE */
new_act.sa_handler = doexit;
sigemptyset(&new_act.sa_mask);
sigaction(SIGINT, &new_act, 0);
sigaction(SIGTERM, &new_act, 0);
sigaction(SIGHUP, &new_act, 0);
sigaction(SIGQUIT, &new_act, 0);
sigaction(SIGALRM, &new_act, 0);
new_act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &new_act, 0);
new_act.sa_handler = do_child;
sigaction(SIGCHLD, &new_act, 0);
More information about the krb5-bugs
mailing list