X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/blobdiff_plain/6f61e0ec97f7b15ee9c29ce2c9be594458534bdf..HEAD:/readpass.c diff --git a/readpass.c b/readpass.c index 9f74bec1..bd144c2e 100644 --- a/readpass.c +++ b/readpass.c @@ -1,3 +1,4 @@ +/* $OpenBSD: readpass.c,v 1.47 2006/08/03 03:34:42 deraadt Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * @@ -23,17 +24,27 @@ */ #include "includes.h" -RCSID("$OpenBSD: readpass.c,v 1.34 2006/02/08 12:15:27 stevesk Exp $"); +#include +#include + +#include +#include #ifdef HAVE_PATHS_H # include #endif +#include +#include +#include +#include +#include #include "xmalloc.h" #include "misc.h" #include "pathnames.h" #include "log.h" #include "ssh.h" +#include "uidswap.h" static char * ssh_askpass(char *askpass, const char *msg) @@ -57,8 +68,7 @@ ssh_askpass(char *askpass, const char *msg) return NULL; } if (pid == 0) { - seteuid(getuid()); - setuid(getuid()); + permanently_drop_suid(getuid()); close(p[0]); if (dup2(p[1], STDOUT_FILENO) < 0) fatal("ssh_askpass: dup2: %s", strerror(errno));