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; break;
} }
} }
if (cldap.fetch_ad_account (usersid, false, dnsdomain)) if (dnsdomain)
{ {
PWCHAR val = cldap.get_profile_path (); if (cldap.fetch_ad_account (usersid, false, dnsdomain))
if (val && *val)
{ {
wcsncpy (userpath, val, MAX_PATH - 1); PWCHAR val = cldap.get_profile_path ();
userpath[MAX_PATH - 1] = L'\0'; if (val && *val)
pi.lpProfilePath = userpath; {
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)) if (!LoadUserProfileW (token, &pi))