]> granicus.if.org Git - sudo/commitdiff
If there is nothing to read from the askpass program, set errno to
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 27 Mar 2012 16:41:28 +0000 (12:41 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 27 Mar 2012 16:41:28 +0000 (12:41 -0400)
EINTR.  This makes the cancel button behave like the user entered
^C at the password prompt when PAM is used.

src/tgetpass.c

index c19e83b9c8648260967936e43145d1d47969eb8b..8b12bdc8e49d734ef33e186886f1e1698fe7eaae 100644 (file)
@@ -254,6 +254,9 @@ sudo_askpass(const char *askpass, const char *prompt)
     (void) close(pfd[0]);
     (void) sigaction(SIGPIPE, &saved_sa_pipe, NULL);
 
+    if (pass == NULL)
+       errno = EINTR;  /* make cancel button simulate ^C */
+
     debug_return_str_masked(pass);
 }