X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/blobdiff_plain/a75f53605e3e5592c6c6a2c979a7a43db7db481d..d3221cca2d803f842bd8cef2fc3c542d17b1be39:/readpass.c diff --git a/readpass.c b/readpass.c index a9b99617..b83b6f5e 100644 --- a/readpass.c +++ b/readpass.c @@ -1,3 +1,4 @@ +/* $OpenBSD: readpass.c,v 1.40 2006/07/09 15:15:10 stevesk Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * @@ -23,10 +24,13 @@ */ #include "includes.h" -RCSID("$OpenBSD: readpass.c,v 1.34 2006/02/08 12:15:27 stevesk Exp $"); +#include +#include + +#include #ifdef HAVE_PATHS_H -# include +# include #endif #include "xmalloc.h" @@ -34,6 +38,7 @@ RCSID("$OpenBSD: readpass.c,v 1.34 2006/02/08 12:15:27 stevesk Exp $"); #include "pathnames.h" #include "log.h" #include "ssh.h" +#include "uidswap.h" static char * ssh_askpass(char *askpass, const char *msg) @@ -57,8 +62,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));