diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2010-09-28 18:49:31 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2010-09-28 18:49:31 +0400 |
commit | 2a9b4b7aa07c166beca1c37d2ba7faa22feca33f (patch) | |
tree | 67fe89cf1747cf259bac0ea5cb66db10edb5ac34 /winsup/cygwin/uinfo.cc | |
parent | 2f1f8815c037ee0387c30fba98689e544ab75c9a (diff) |
Revert accidental previous login.
Diffstat (limited to 'winsup/cygwin/uinfo.cc')
-rw-r--r-- | winsup/cygwin/uinfo.cc | 41 |
1 files changed, 10 insertions, 31 deletions
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index 8ea3e1ab0..60db38e76 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -38,16 +38,14 @@ void cygheap_user::init () { WCHAR user_name[UNLEN + 1]; - DWORD user_name_len; + DWORD user_name_len = UNLEN + 1; - user_name_len = GetEnvironmentVariableW (L"USERNAME", user_name, UNLEN + 1); - if (user_name_len) - { - user_name[UNLEN] = L'\0'; - char mb_user_name[user_name_len = sys_wcstombs (NULL, 0, user_name)]; - sys_wcstombs (mb_user_name, user_name_len, user_name); - set_name (mb_user_name); - } + if (!GetUserNameW (user_name, &user_name_len)) + wcpcpy (user_name, L"unknown"); + + char mb_user_name[user_name_len = sys_wcstombs (NULL, 0, user_name)]; + sys_wcstombs (mb_user_name, user_name_len, user_name); + set_name (mb_user_name); DWORD siz; PSECURITY_DESCRIPTOR psd; @@ -98,29 +96,10 @@ internal_getlogin (cygheap_user &user) { struct passwd *pw = NULL; - /* Handle a border case. If neither $USERNAME, nor /etc/passwd exists, - we tryto fetch the username from the system now. */ - if (!user.name () || !*user.name ()) - { - WCHAR user_name[UNLEN + 1]; - DWORD user_name_len = UNLEN + 1; - - if (GetUserNameW (user_name, &user_name_len)) - { - char mb_user_name[user_name_len = sys_wcstombs (NULL, 0, user_name)]; - sys_wcstombs (mb_user_name, user_name_len, user_name); - user.set_name (mb_user_name); - } - else - user.set_name ("unknown"); - } - else - { - cygpsid psid = user.sid (); - pw = internal_getpwsid (psid); - } + cygpsid psid = user.sid (); + pw = internal_getpwsid (psid); - if (!pw && !(pw = internal_getpwnam (user.name (), true)) + if (!pw && !(pw = internal_getpwnam (user.name ())) && !(pw = internal_getpwuid (DEFAULT_UID))) debug_printf ("user not found in augmented /etc/passwd"); else |