This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] nscd: don't fork twice


On 01/14/2013 11:53 AM, Andreas Schwab wrote:
There is no need to fork twice when daemonizing.

Andreas.

* nscd/nscd.c (main): Don't fork again after closing files.

diff --git a/nscd/nscd.c b/nscd/nscd.c
index 26cf3c2..ffbc6f8 100644
--- a/nscd/nscd.c
+++ b/nscd/nscd.c
@@ -252,15 +252,6 @@ main (int argc, char **argv)
  	for (i = min_close_fd; i < getdtablesize (); i++)
  	  close (i);

-      if (run_mode == RUN_DAEMONIZE)
-	{
-	  pid = fork ();
-	  if (pid == -1)
-	    error (EXIT_FAILURE, errno, _("cannot fork"));
-	  if (pid != 0)
-	    exit (0);
-	}
-
        setsid ();

Could you add error checking to the setsid call? I checked and it seems that a single fork is enough on Linux. The double-fork idiom is supposed to be a SYSV-ism, but perhaps it's required on FreeBSD or Hurd, too.


--
Florian Weimer / Red Hat Product Security Team


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]