diff options
author | Damien Miller <djm@mindrot.org> | 1999-11-25 11:54:57 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 1999-11-25 11:54:57 +1100 |
commit | 5428f646ad32da88ddd04a8c287d595524674fbf (patch) | |
tree | cc1f1e5d7852e1f44d41077f776abf7dab7ac06d /readpass.c | |
parent | 9072e1889648988da38b7b81bce95291c1dc3a23 (diff) |
- More reformatting merged from OpenBSD CVS
- Merged OpenBSD CVS changes:
- [channels.c]
report from mrwizard@psu.edu via djm@ibs.com.au
- [channels.c]
set SO_REUSEADDR and SO_LINGER for forwarded ports.
chip@valinux.com via damien@ibs.com.au
- [nchan.c]
it's not an error() if shutdown_write failes in nchan.
- [readconf.c]
remove dead #ifdef-0-code
- [readconf.c servconf.c]
strcasecmp instead of tolower
- [scp.c]
progress meter overflow fix from damien@ibs.com.au
- [ssh-add.1 ssh-add.c]
SSH_ASKPASS support
- [ssh.1 ssh.c]
postpone fork_after_authentication until command execution,
request/patch from jahakala@cc.jyu.fi via damien@ibs.com.au
plus: use daemon() for backgrounding
Diffstat (limited to 'readpass.c')
-rw-r--r-- | readpass.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/readpass.c b/readpass.c index 66ce33c97..5b7119fd7 100644 --- a/readpass.c +++ b/readpass.c | |||
@@ -14,7 +14,7 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include "includes.h" | 16 | #include "includes.h" |
17 | RCSID("$Id: readpass.c,v 1.2 1999/11/24 13:26:22 damien Exp $"); | 17 | RCSID("$Id: readpass.c,v 1.3 1999/11/25 00:54:59 damien Exp $"); |
18 | 18 | ||
19 | #include "xmalloc.h" | 19 | #include "xmalloc.h" |
20 | #include "ssh.h" | 20 | #include "ssh.h" |
@@ -38,10 +38,12 @@ intr_handler(int sig) | |||
38 | kill(getpid(), sig); | 38 | kill(getpid(), sig); |
39 | } | 39 | } |
40 | 40 | ||
41 | /* Reads a passphrase from /dev/tty with echo turned off. Returns the | 41 | /* |
42 | passphrase (allocated with xmalloc). Exits if EOF is encountered. | 42 | * Reads a passphrase from /dev/tty with echo turned off. Returns the |
43 | The passphrase if read from stdin if from_stdin is true (as is the | 43 | * passphrase (allocated with xmalloc). Exits if EOF is encountered. The |
44 | case with ssh-keygen). */ | 44 | * passphrase if read from stdin if from_stdin is true (as is the case with |
45 | * ssh-keygen). | ||
46 | */ | ||
45 | 47 | ||
46 | char * | 48 | char * |
47 | read_passphrase(const char *prompt, int from_stdin) | 49 | read_passphrase(const char *prompt, int from_stdin) |
@@ -53,8 +55,10 @@ read_passphrase(const char *prompt, int from_stdin) | |||
53 | if (from_stdin) | 55 | if (from_stdin) |
54 | f = stdin; | 56 | f = stdin; |
55 | else { | 57 | else { |
56 | /* Read the passphrase from /dev/tty to make it possible | 58 | /* |
57 | to ask it even when stdin has been redirected. */ | 59 | * Read the passphrase from /dev/tty to make it possible to |
60 | * ask it even when stdin has been redirected. | ||
61 | */ | ||
58 | f = fopen("/dev/tty", "r"); | 62 | f = fopen("/dev/tty", "r"); |
59 | if (!f) { | 63 | if (!f) { |
60 | /* No controlling terminal and no DISPLAY. Nowhere to read. */ | 64 | /* No controlling terminal and no DISPLAY. Nowhere to read. */ |
@@ -101,8 +105,10 @@ read_passphrase(const char *prompt, int from_stdin) | |||
101 | *strchr(buf, '\n') = 0; | 105 | *strchr(buf, '\n') = 0; |
102 | /* Allocate a copy of the passphrase. */ | 106 | /* Allocate a copy of the passphrase. */ |
103 | cp = xstrdup(buf); | 107 | cp = xstrdup(buf); |
104 | /* Clear the buffer so we don\'t leave copies of the passphrase | 108 | /* |
105 | laying around. */ | 109 | * Clear the buffer so we don\'t leave copies of the passphrase |
110 | * laying around. | ||
111 | */ | ||
106 | memset(buf, 0, sizeof(buf)); | 112 | memset(buf, 0, sizeof(buf)); |
107 | /* Print a newline since the prompt probably didn\'t have one. */ | 113 | /* Print a newline since the prompt probably didn\'t have one. */ |
108 | fprintf(stderr, "\n"); | 114 | fprintf(stderr, "\n"); |