diff options
Diffstat (limited to 'winsup/cygwin/uinfo.cc')
-rw-r--r-- | winsup/cygwin/uinfo.cc | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index ad61dd3ed..84b8af0c8 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -247,31 +247,27 @@ cygheap_user::ontherange (homebodies what, struct passwd *pw) cygwin_conv_to_full_win32_path (pw->pw_dir, homepath_env_buf); else { - sys_mbstowcs (wuser, name (), sizeof (wuser) / sizeof (*wuser)); - if ((ret = NetUserGetInfo (NULL, wuser, 3, (LPBYTE *)&ui))) + if (env_logsrv ()) { - if (env_logsrv ()) + WCHAR wlogsrv[INTERNET_MAX_HOST_NAME_LENGTH + 3]; + sys_mbstowcs (wlogsrv, env_logsrv (), + sizeof (wlogsrv) / sizeof(*wlogsrv)); + sys_mbstowcs (wuser, name (), sizeof (wuser) / sizeof (*wuser)); + if (!(ret = NetUserGetInfo (wlogsrv, wuser, 3,(LPBYTE *)&ui))) { - WCHAR wlogsrv[INTERNET_MAX_HOST_NAME_LENGTH + 3]; - strcpy (homepath_env_buf, env_logsrv ()); - sys_mbstowcs (wlogsrv, homepath_env_buf, - sizeof (wlogsrv) / sizeof(*wlogsrv)); - ret = NetUserGetInfo (wlogsrv, wuser, 3,(LPBYTE *)&ui); - } - } - if (!ret) - { - char *p; - sys_wcstombs (homepath_env_buf, ui->usri3_home_dir, MAX_PATH); - if (!homepath_env_buf[0]) - { - sys_wcstombs (homepath_env_buf, ui->usri3_home_dir_drive, MAX_PATH); - if (homepath_env_buf[0]) - strcat (homepath_env_buf, "\\"); - else if (!GetSystemDirectory (homepath_env_buf, MAX_PATH)) - strcpy (homepath_env_buf, "c:\\"); - else if ((p = strchr (homepath_env_buf, '\\'))) - p[1] = '\0'; + char *p; + sys_wcstombs (homepath_env_buf, ui->usri3_home_dir, MAX_PATH); + if (!homepath_env_buf[0]) + { + sys_wcstombs (homepath_env_buf, ui->usri3_home_dir_drive, + MAX_PATH); + if (homepath_env_buf[0]) + strcat (homepath_env_buf, "\\"); + else if (!GetSystemDirectory (homepath_env_buf, MAX_PATH)) + strcpy (homepath_env_buf, "c:\\"); + else if ((p = strchr (homepath_env_buf, '\\'))) + p[1] = '\0'; + } } } if (ui) |