diff options
author | djm <djm> | 2001-07-14 02:19:56 +0000 |
---|---|---|
committer | djm <djm> | 2001-07-14 02:19:56 +0000 |
commit | a8f923e9efb390aaedc65946e6a705396de8a1c2 (patch) | |
tree | 2dc61564b2ae4b817bf030bb71054cf3b66751dd | |
parent | 22be9e3c5cb7fc18293d8227c3106ed36ac8e029 (diff) | |
download | openssh-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-- | ChangeLog | 5 | ||||
-rw-r--r-- | readpass.c | 14 |
2 files changed, 13 insertions, 6 deletions
@@ -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 $ @@ -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()); |