[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