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: