Cygwin: load_user_profile: chack if we got a valid, known domainname

...otherwise we may suffer a SEGV because dnsdomain is NULL.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2019-02-28 23:17:55 +01:00
parent 495ae41891
commit 5d9ac1291d
1 changed files with 12 additions and 7 deletions

View File

@ -288,17 +288,22 @@ load_user_profile (HANDLE token, struct passwd *pw, cygpsid &usersid)
break;
}
}
if (cldap.fetch_ad_account (usersid, false, dnsdomain))
if (dnsdomain)
{
PWCHAR val = cldap.get_profile_path ();
if (val && *val)
if (cldap.fetch_ad_account (usersid, false, dnsdomain))
{
wcsncpy (userpath, val, MAX_PATH - 1);
userpath[MAX_PATH - 1] = L'\0';
pi.lpProfilePath = userpath;
PWCHAR val = cldap.get_profile_path ();
if (val && *val)
{
wcsncpy (userpath, val, MAX_PATH - 1);
userpath[MAX_PATH - 1] = L'\0';
pi.lpProfilePath = userpath;
}
}
free (dnsdomain);
}
free (dnsdomain);
else
debug_printf ("Unknown domain <%W>?", domain);
}
if (!LoadUserProfileW (token, &pi))