View | Details | Raw Unified | Return to bug 1542
Collapse All | Expand All

(-)readpass.c (-2 / +7 lines)
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;

Return to bug 1542