svn commit: r186756 - stable/7/usr.sbin/rpc.yppasswdd
Rong-En Fan
rafan at FreeBSD.org
Mon Jan 5 04:26:25 UTC 2009
Author: rafan
Date: Mon Jan 5 04:26:24 2009
New Revision: 186756
URL: http://svn.freebsd.org/changeset/base/186756
Log:
MFC r184459
- 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
Modified:
stable/7/usr.sbin/rpc.yppasswdd/ (props changed)
stable/7/usr.sbin/rpc.yppasswdd/yppasswdd_main.c
Modified: stable/7/usr.sbin/rpc.yppasswdd/yppasswdd_main.c
==============================================================================
--- stable/7/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Mon Jan 5 03:50:04 2009 (r186755)
+++ stable/7/usr.sbin/rpc.yppasswdd/yppasswdd_main.c Mon Jan 5 04:26:24 2009 (r186756)
@@ -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-stable-7
mailing list