]> granicus.if.org Git - sudo/commitdiff
Don't generate SIGTOU when restoring the terminal modes. It doen't
authorTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 17 Oct 2016 15:02:34 +0000 (09:02 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 17 Oct 2016 15:02:34 +0000 (09:02 -0600)
make sense to suspend the process only to restore the terminal
settings since in this case the shell has already taken ownership
of the tty.

src/tgetpass.c

index 4537b1c3e270f1115bee1ee8aaba0827fec15cf9..c84f5de126c24102d7250e202624df4638614037 100644 (file)
@@ -197,17 +197,8 @@ restore:
 
     /* Restore old tty settings. */
     if (!ISSET(flags, TGP_ECHO)) {
-       for (;;) {
-           /* Restore old tty settings if possible. */
-           if (sudo_term_restore(input, true) || errno != EINTR)
-               break;
-           /* Received SIGTTOU, suspend the process. */
-           signo[SIGTTOU] = 0;
-           if (suspend(SIGTTOU, callback) == -1) {
-               pass = NULL;
-               break;
-           }
-       }
+       /* Restore old tty settings if possible. */
+       (void) sudo_term_restore(input, true);
     }
     if (input != STDIN_FILENO)
        (void) close(input);