Index: /trunk/src/auditd.c
===================================================================
--- /trunk/src/auditd.c (revision 160)
+++ /trunk/src/auditd.c (revision 213)
@@ -305,12 +305,14 @@
/* Open stdin,out,err to /dev/null */
fd = open("/dev/null", O_RDWR);
- if (fd < 0)
+ if (fd < 0) {
+ audit_msg(LOG_ERR, "Cannot open /dev/null");
return -1;
- if (dup2(fd, 0) < 0)
+ }
+ if ((dup2(fd, 0) < 0) || (dup2(fd, 1) < 0) ||
+ (dup2(fd, 2) < 0)) {
+ audit_msg(LOG_ERR,
+ "Cannot reassign descriptors to /dev/null");
return -1;
- if (dup2(fd, 1) < 0)
- return -1;
- if (dup2(fd, 2) < 0)
- return -1;
+ }
close(fd);
@@ -318,7 +320,6 @@
chdir("/");
- /* Change session */
- if (setsid() < 0)
- return -1;
+ /* Become session/process group leader */
+ setsid();
break;
case -1: