Sebastian Kuschel reports that pfd_closing can be called for a socket
[u/mdw/putty] / unix / uxpty.c
index 4a606ef..98f9179 100644 (file)
@@ -373,15 +373,7 @@ static void pty_open_master(Pty pty)
     strncpy(pty->name, ptsname(pty->master_fd), FILENAME_MAX-1);
 #endif
 
-    {
-        /*
-         * Set the pty master into non-blocking mode.
-         */
-        int fl;
-       fl = fcntl(pty->master_fd, F_GETFL);
-       if (fl != -1 && !(fl & O_NONBLOCK))
-           fcntl(pty->master_fd, F_SETFL, fl | O_NONBLOCK);
-    }
+    nonblock(pty->master_fd);
 
     if (!ptys_by_fd)
        ptys_by_fd = newtree234(pty_compare_by_fd);
@@ -808,7 +800,7 @@ static const char *pty_init(void *frontend, void **backend_handle, Conf *conf,
        }
 
        close(pty->master_fd);
-       fcntl(slavefd, F_SETFD, 0);    /* don't close on exec */
+       noncloexec(slavefd);
        dup2(slavefd, 0);
        dup2(slavefd, 1);
        dup2(slavefd, 2);