summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2009-03-22 19:18:26 +0000
committerCorinna Vinschen <corinna@vinschen.de>2009-03-22 19:18:26 +0000
commita26691a67c48028a7dfbfefc541718c80d4b3534 (patch)
tree2cb9f3ec31e69c64059c57c4c2b97f25d881f4ca
parent35aeac58b03b92d3e5641400cbf5b7ccfad15705 (diff)
downloadcygnal-a26691a67c48028a7dfbfefc541718c80d4b3534.tar.gz
cygnal-a26691a67c48028a7dfbfefc541718c80d4b3534.tar.bz2
cygnal-a26691a67c48028a7dfbfefc541718c80d4b3534.zip
* passwd.c (main): Always get logonserver from environment and
use when fetching user info for caller.
-rw-r--r--winsup/utils/ChangeLog5
-rw-r--r--winsup/utils/passwd.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog
index 55b707fb0..2dc2c2349 100644
--- a/winsup/utils/ChangeLog
+++ b/winsup/utils/ChangeLog
@@ -1,5 +1,10 @@
2009-03-22 Corinna Vinschen <corinna@vinschen.de>
+ * passwd.c (main): Always get logonserver from environment and
+ use when fetching user info for caller.
+
+2009-03-22 Corinna Vinschen <corinna@vinschen.de>
+
* ldd.cc: Fix compiler warning.
* passwd.c: Use mbstowcs instead of MultiByteToWideChar throughout.
diff --git a/winsup/utils/passwd.c b/winsup/utils/passwd.c
index 68b3e44f4..1f04fb63c 100644
--- a/winsup/utils/passwd.c
+++ b/winsup/utils/passwd.c
@@ -349,6 +349,7 @@ main (int argc, char **argv)
int Sopt = 0;
int Ropt = 0;
PUSER_INFO_3 ui, li;
+ LPWSTR my_server = NULL;
LPWSTR server = NULL;
prog_name = strrchr (argv[0], '/');
@@ -517,12 +518,14 @@ main (int argc, char **argv)
return 0;
}
- if (!server && (logonserver = getenv ("LOGONSERVER")))
+ if ((logonserver = getenv ("LOGONSERVER")))
{
size_t len = mbstowcs (NULL, logonserver, 0);
if (len > 0 && len != (size_t) -1)
- mbstowcs (server = alloca ((len + 1) * sizeof (wchar_t)),
+ mbstowcs (my_server = alloca ((len + 1) * sizeof (wchar_t)),
logonserver, len + 1);
+ if (!server)
+ server = my_server;
}
if (Larg >= 0 || xarg >= 0 || narg >= 0 || iarg >= 0)
@@ -534,7 +537,7 @@ main (int argc, char **argv)
strcpy (user, optind >= argc ? getlogin () : argv[optind]);
- li = GetPW (getlogin (), 0, server);
+ li = GetPW (getlogin (), 0, my_server);
if (! li)
return 1;