svn commit: r184459 - head/usr.sbin/rpc.yppasswdd
Rong-En Fan
rafan at FreeBSD.org
Wed Oct 29 18:54:32 PDT 2008
Author: rafan
Date: Thu Oct 30 01:54:31 2008
New Revision: 184459
URL: http://svn.freebsd.org/changeset/base/184459
Log:
- Whenever a password/shell is changed via rpc.yppasswdd, the daemon leaves
one zombie process because it does not do the cleanup. For a long running
NIS/YP server, it will have lots of zombie processes on it. Fix that by
ignoring the SIGCHLD signal since we don't really care about the exit
status in this case.
PR: bin/91980
Reported by: Arjan van der Velde <dj_noresult at hotmail.com>
Submitted by: Jui-Nan Lin" <jnlin at csie.nctu.edu.tw>
Reviewed by: delphij
MFC after: 1 month
Modified:
head/usr.sbin/rpc.yppasswdd/yppasswdd_main.c
Modified: head/usr.sbin/rpc.yppasswdd/yppasswdd_main.c
==============================================================================
--- head/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Thu Oct 30 00:19:19 2008 (r184458)
+++ head/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Thu Oct 30 01:54:31 2008 (r184459)
@@ -165,6 +165,7 @@ main(int argc, char *argv[])
struct sockaddr_in saddr;
socklen_t asize = sizeof (saddr);
struct netconfig *nconf;
+ struct sigaction sa;
void *localhandle;
int ch;
char *mastername;
@@ -268,6 +269,9 @@ the %s domain -- aborting", yppasswd_dom
}
}
openlog("rpc.yppasswdd", LOG_PID, LOG_DAEMON);
+ memset(&sa, 0, sizeof(sa));
+ sa.sa_flags = SA_NOCLDWAIT;
+ sigaction(SIGCHLD, &sa, NULL);
rpcb_unset(YPPASSWDPROG, YPPASSWDVERS, NULL);
rpcb_unset(MASTER_YPPASSWDPROG, MASTER_YPPASSWDVERS, NULL);
More information about the svn-src-head
mailing list