|
Lines 44-50
Link Here
|
| 44 |
#include "uidswap.h" |
44 |
#include "uidswap.h" |
| 45 |
|
45 |
|
| 46 |
static char * |
46 |
static char * |
| 47 |
ssh_askpass(char *askpass, const char *msg) |
47 |
ssh_askpass(char *askpass, const char *msg, int echo_on) |
| 48 |
{ |
48 |
{ |
| 49 |
pid_t pid; |
49 |
pid_t pid; |
| 50 |
size_t len; |
50 |
size_t len; |
|
Lines 69-74
ssh_askpass(char *askpass, const char *m
Link Here
|
| 69 |
close(p[0]); |
69 |
close(p[0]); |
| 70 |
if (dup2(p[1], STDOUT_FILENO) < 0) |
70 |
if (dup2(p[1], STDOUT_FILENO) < 0) |
| 71 |
fatal("ssh_askpass: dup2: %s", strerror(errno)); |
71 |
fatal("ssh_askpass: dup2: %s", strerror(errno)); |
|
|
72 |
if (echo_on) |
| 73 |
setenv("SSH_ASKPASS_ECHO", "1", 1); |
| 74 |
else |
| 75 |
unsetenv("SSH_ASKPASS_ECHO"); |
| 72 |
execlp(askpass, askpass, msg, (char *) 0); |
76 |
execlp(askpass, askpass, msg, (char *) 0); |
| 73 |
fatal("ssh_askpass: exec(%s): %s", askpass, strerror(errno)); |
77 |
fatal("ssh_askpass: exec(%s): %s", askpass, strerror(errno)); |
| 74 |
} |
78 |
} |
|
Lines 141-147
read_passphrase(const char *prompt, int
Link Here
|
| 141 |
askpass = getenv(SSH_ASKPASS_ENV); |
145 |
askpass = getenv(SSH_ASKPASS_ENV); |
| 142 |
else |
146 |
else |
| 143 |
askpass = _PATH_SSH_ASKPASS_DEFAULT; |
147 |
askpass = _PATH_SSH_ASKPASS_DEFAULT; |
| 144 |
if ((ret = ssh_askpass(askpass, prompt)) == NULL) |
148 |
if ((ret = ssh_askpass(askpass, prompt, |
|
|
149 |
flags & RP_ECHO)) == NULL) |
| 145 |
if (!(flags & RP_ALLOW_EOF)) |
150 |
if (!(flags & RP_ALLOW_EOF)) |
| 146 |
return xstrdup(""); |
151 |
return xstrdup(""); |
| 147 |
return ret; |
152 |
return ret; |