diff options
Diffstat (limited to 'winsup/cygwin/security.cc')
-rw-r--r-- | winsup/cygwin/security.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc index 42bf5f2bc..d640ac4a3 100644 --- a/winsup/cygwin/security.cc +++ b/winsup/cygwin/security.cc @@ -344,6 +344,23 @@ lookup_name (const char *name, const char *logsrv, PSID ret_sid) if (! name) return FALSE; + if (*myself->domain) + { + strcat (strcat (strcpy (domuser, myself->domain), "\\"), name); + if (LookupAccountName (NULL, domuser, + sid, (sidlen = MAX_SID_LEN, &sidlen), + dom, (domlen = MAX_COMPUTERNAME_LENGTH, &domlen), + &acc_type) + && legal_sid_type (acc_type)) + goto got_it; + if (logsrv && *logsrv + && LookupAccountName (logsrv, domuser, + sid, (sidlen = MAX_SID_LEN, &sidlen), + dom, (domlen = MAX_COMPUTERNAME_LENGTH,&domlen), + &acc_type) + && legal_sid_type (acc_type)) + goto got_it; + } if (logsrv && *logsrv) { if (LookupAccountName (logsrv, name, |