diff options
Diffstat (limited to 'readpass.c')
-rw-r--r-- | readpass.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/readpass.c b/readpass.c index 4eeeed917..3724eeab1 100644 --- a/readpass.c +++ b/readpass.c | |||
@@ -32,7 +32,7 @@ | |||
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include "includes.h" | 34 | #include "includes.h" |
35 | RCSID("$OpenBSD: readpass.c,v 1.20 2001/07/02 22:29:20 markus Exp $"); | 35 | RCSID("$OpenBSD: readpass.c,v 1.21 2001/07/10 21:49:12 markus Exp $"); |
36 | 36 | ||
37 | #include "xmalloc.h" | 37 | #include "xmalloc.h" |
38 | #include "readpass.h" | 38 | #include "readpass.h" |
@@ -54,10 +54,14 @@ ssh_askpass(char *askpass, const char *msg) | |||
54 | error("ssh_askpass: fflush: %s", strerror(errno)); | 54 | error("ssh_askpass: fflush: %s", strerror(errno)); |
55 | if (askpass == NULL) | 55 | if (askpass == NULL) |
56 | fatal("internal error: askpass undefined"); | 56 | fatal("internal error: askpass undefined"); |
57 | if (pipe(p) < 0) | 57 | if (pipe(p) < 0) { |
58 | fatal("ssh_askpass: pipe: %s", strerror(errno)); | 58 | error("ssh_askpass: pipe: %s", strerror(errno)); |
59 | if ((pid = fork()) < 0) | 59 | return xstrdup(""); |
60 | fatal("ssh_askpass: fork: %s", strerror(errno)); | 60 | } |
61 | if ((pid = fork()) < 0) { | ||
62 | error("ssh_askpass: fork: %s", strerror(errno)); | ||
63 | return xstrdup(""); | ||
64 | } | ||
61 | if (pid == 0) { | 65 | if (pid == 0) { |
62 | seteuid(getuid()); | 66 | seteuid(getuid()); |
63 | setuid(getuid()); | 67 | setuid(getuid()); |