summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordjm <djm>2001-07-14 02:19:56 +0000
committerdjm <djm>2001-07-14 02:19:56 +0000
commita8f923e9efb390aaedc65946e6a705396de8a1c2 (patch)
tree2dc61564b2ae4b817bf030bb71054cf3b66751dd
parent22be9e3c5cb7fc18293d8227c3106ed36ac8e029 (diff)
downloadopenssh-a8f923e9efb390aaedc65946e6a705396de8a1c2.tar.gz
- markus@cvs.openbsd.org 2001/07/10 21:49:12
[readpass.c] don't panic if fork or pipe fail (just return an empty passwd).
-rw-r--r--ChangeLog5
-rw-r--r--readpass.c14
2 files changed, 13 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 9376129e..86690366 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,6 +31,9 @@
- deraadt@cvs.openbsd.org 2001/07/09 07:04:53
[session.c sftp-int.c]
correct type on last arg to execl(); nordin@cse.ogi.edu
+ - markus@cvs.openbsd.org 2001/07/10 21:49:12
+ [readpass.c]
+ don't panic if fork or pipe fail (just return an empty passwd).
20010711
- (djm) dirname(3) may modify its argument on glibc and other systems.
@@ -6006,4 +6009,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
-$Id: ChangeLog,v 1.1394 2001/07/14 02:19:36 djm Exp $
+$Id: ChangeLog,v 1.1395 2001/07/14 02:19:56 djm Exp $
diff --git a/readpass.c b/readpass.c
index 4eeeed91..3724eeab 100644
--- a/readpass.c
+++ b/readpass.c
@@ -32,7 +32,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: readpass.c,v 1.20 2001/07/02 22:29:20 markus Exp $");
+RCSID("$OpenBSD: readpass.c,v 1.21 2001/07/10 21:49:12 markus Exp $");
#include "xmalloc.h"
#include "readpass.h"
@@ -54,10 +54,14 @@ ssh_askpass(char *askpass, const char *msg)
error("ssh_askpass: fflush: %s", strerror(errno));
if (askpass == NULL)
fatal("internal error: askpass undefined");
- if (pipe(p) < 0)
- fatal("ssh_askpass: pipe: %s", strerror(errno));
- if ((pid = fork()) < 0)
- fatal("ssh_askpass: fork: %s", strerror(errno));
+ if (pipe(p) < 0) {
+ error("ssh_askpass: pipe: %s", strerror(errno));
+ return xstrdup("");
+ }
+ if ((pid = fork()) < 0) {
+ error("ssh_askpass: fork: %s", strerror(errno));
+ return xstrdup("");
+ }
if (pid == 0) {
seteuid(getuid());
setuid(getuid());