* passwd.c (main): Always get logonserver from environment and

use when fetching user info for caller.
This commit is contained in:
Corinna Vinschen 2009-03-22 19:18:26 +00:00
parent 35aeac58b0
commit a26691a67c
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,8 @@
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.

View File

@ -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;