Patch 8.0.0842
Problem:    Using slave pty after closing it.
Solution:   Do the ioctl() before dup'ing it.
Files:      src/os_unix.c


*** ../vim-8.0.0841/src/os_unix.c       2017-08-01 22:24:21.553439094 +0200
--- src/os_unix.c       2017-08-02 22:30:14.404405569 +0200
***************
*** 5316,5321 ****
--- 5316,5332 ----
        if (use_null_for_in || use_null_for_out || use_null_for_err)
            null_fd = open("/dev/null", O_RDWR | O_EXTRA, 0);
  
+       if (pty_slave_fd >= 0)
+       {
+           /* push stream discipline modules */
+           SetupSlavePTY(pty_slave_fd);
+ #  ifdef TIOCSCTTY
+           /* Try to become controlling tty (probably doesn't work,
+            * unless run by root) */
+           ioctl(pty_slave_fd, TIOCSCTTY, (char *)NULL);
+ #  endif
+       }
+ 
        /* set up stdin for the child */
        close(0);
        if (use_null_for_in && null_fd >= 0)
***************
*** 5362,5385 ****
            close(fd_err[1]);
        if (pty_master_fd >= 0)
        {
!           close(pty_master_fd); /* not used */
!           close(pty_slave_fd); /* duped above */
        }
  
        if (null_fd >= 0)
            close(null_fd);
  
-       if (pty_slave_fd >= 0)
-       {
-           /* push stream discipline modules */
-           SetupSlavePTY(pty_slave_fd);
- #  ifdef TIOCSCTTY
-           /* Try to become controlling tty (probably doesn't work,
-            * unless run by root) */
-           ioctl(pty_slave_fd, TIOCSCTTY, (char *)NULL);
- #  endif
-       }
- 
        /* See above for type of argv. */
        execvp(argv[0], argv);
  
--- 5373,5385 ----
            close(fd_err[1]);
        if (pty_master_fd >= 0)
        {
!           close(pty_master_fd); /* not used in the child */
!           close(pty_slave_fd);  /* was duped above */
        }
  
        if (null_fd >= 0)
            close(null_fd);
  
        /* See above for type of argv. */
        execvp(argv[0], argv);
  
*** ../vim-8.0.0841/src/version.c       2017-08-02 22:10:30.520919428 +0200
--- src/version.c       2017-08-02 22:31:15.079969725 +0200
***************
*** 771,772 ****
--- 771,774 ----
  {   /* Add new patch number below this line */
+ /**/
+     842,
  /**/

-- 
Vim is like Emacs without all the typing.  (John "Johann" Spetz)

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui