help-cfengine
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] cfservd : umask error and reopen stdin/out/err


From: Adrian Phillips
Subject: [PATCH] cfservd : umask error and reopen stdin/out/err
Date: 05 Feb 2002 13:20:30 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1

Another taken from 1.6.3 Debian package.

diff -urN cfengine-2.0.a16/src/cfservd.c cfengine-2.0.a16.new/src/cfservd.c
--- cfengine-2.0.a16/src/cfservd.c      Fri Jan 18 17:34:14 2002
+++ cfengine-2.0.a16.new/src/cfservd.c  Fri Feb  1 11:50:03 2002
@@ -170,7 +170,6 @@
   char ld_library_path[bufsize];
   int c, i;
 
-umask(0);
 openlog(VPREFIX,LOG_PID|LOG_NOWAIT|LOG_ODELAY,LOG_DAEMON);
 strcpy(VINPUTFILE,CFD_INPUT);
 OUTPUT[0] = '\0';
@@ -515,14 +514,23 @@
 
 if (!NO_FORK)
   {
+  int fd;
 #ifdef HAVE_SETSID
   setsid();
 #endif 
+  fd = open("/dev/null", O_RDWR, 0);
   fclose (stdin);
   fclose (stdout);
   fclose (stderr);
   closelog();
-  }
+  if (fd != -1)
+   {
+     dup2(fd, STDIN_FILENO);
+     dup2(fd, STDOUT_FILENO);
+     dup2(fd, STDERR_FILENO);
+     close(fd);
+   }
+ }
 
 signal(SIGINT,(void*)ExitCleanly);
 signal(SIGTERM,(void*)ExitCleanly);


-- 
Your mouse has moved.
Windows NT must be restarted for the change to take effect.
Reboot now?  [OK]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]