diff -r 000000000000 -r c4d124ed9f8e patches/glibc/2.9/360-2.8-nscd-one-fork.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/glibc/2.9/360-2.8-nscd-one-fork.patch Sun Apr 19 16:17:11 2009 +0000 @@ -0,0 +1,45 @@ +Original patch from: gentoo/src/patchsets/glibc/2.9/1160_all_glibc-2.8-nscd-one-fork.patch + +-= BEGIN original header =- +only fork one to assist in stop-start-daemon assumptions about daemon behavior + +http://bugs.gentoo.org/190785 + +-= END original header =- + +diff -durN glibc-2_9.orig/nscd/nscd.c glibc-2_9/nscd/nscd.c +--- glibc-2_9.orig/nscd/nscd.c 2008-03-29 19:08:12.000000000 +0100 ++++ glibc-2_9/nscd/nscd.c 2009-02-02 22:01:10.000000000 +0100 +@@ -179,6 +179,9 @@ + if (pid != 0) + exit (0); + ++ if (write_pid (_PATH_NSCDPID) < 0) ++ dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno)); ++ + int nullfd = open (_PATH_DEVNULL, O_RDWR); + if (nullfd != -1) + { +@@ -228,12 +231,6 @@ + for (i = min_close_fd; i < getdtablesize (); i++) + close (i); + +- pid = fork (); +- if (pid == -1) +- error (EXIT_FAILURE, errno, _("cannot fork")); +- if (pid != 0) +- exit (0); +- + setsid (); + + if (chdir ("/") != 0) +@@ -242,9 +239,6 @@ + + openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON); + +- if (write_pid (_PATH_NSCDPID) < 0) +- dbg_log ("%s: %s", _PATH_NSCDPID, strerror (errno)); +- + if (!init_logfile ()) + dbg_log (_("Could not create log file")); +