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