diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-03-22 19:18:26 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-03-22 19:18:26 +0000 |
commit | a26691a67c48028a7dfbfefc541718c80d4b3534 (patch) | |
tree | 2cb9f3ec31e69c64059c57c4c2b97f25d881f4ca | |
parent | 35aeac58b03b92d3e5641400cbf5b7ccfad15705 (diff) | |
download | cygnal-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/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/utils/passwd.c | 9 |
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; |