userplex: Corrected opening of /dev/null.
[ashd.git] / src / userplex.c
index b66490f..357d791 100644 (file)
@@ -53,6 +53,7 @@ static void login(struct passwd *pwd)
 {
     int fd;
     
+    setsid();
     if(getuid() == 0) {
        if(initgroups(pwd->pw_name, pwd->pw_gid)) {
            flog(LOG_ERR, "could not init group list for %s: %s", pwd->pw_name, strerror(errno));
@@ -86,12 +87,12 @@ static void login(struct passwd *pwd)
      * getting Kerberos credentials, running PAM session modules, and
      * who knows what. I'll add them along as I find them useful. */
     if(((fd = open(".ashd/output", O_WRONLY | O_APPEND)) >= 0) ||
-       ((fd = open("/dev/null", 0)) >= 0)) {
+       ((fd = open("/dev/null", O_WRONLY)) >= 0)) {
        dup2(fd, 1);
        close(fd);
     }
     if(((fd = open(".ashd/error", O_WRONLY | O_APPEND)) >= 0) ||
-       ((fd = open("/dev/null", 0)) >= 0)) {
+       ((fd = open("/dev/null", O_WRONLY)) >= 0)) {
        dup2(fd, 2);
        close(fd);
     }