summaryrefslogtreecommitdiff
path: root/readpass.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>1999-11-25 11:54:57 +1100
committerDamien Miller <djm@mindrot.org>1999-11-25 11:54:57 +1100
commit5428f646ad32da88ddd04a8c287d595524674fbf (patch)
treecc1f1e5d7852e1f44d41077f776abf7dab7ac06d /readpass.c
parent9072e1889648988da38b7b81bce95291c1dc3a23 (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.c24
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"
17RCSID("$Id: readpass.c,v 1.2 1999/11/24 13:26:22 damien Exp $"); 17RCSID("$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
46char * 48char *
47read_passphrase(const char *prompt, int from_stdin) 49read_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");