* security.cc (get_user_local_groups): Use LookupAccountSid to find the
local equivalent of BUILTIN.
This commit is contained in:
parent
d97f0f72db
commit
6e8a0232df
|
@ -1,3 +1,8 @@
|
||||||
|
2002-12-14 Pierre Humblet <pierre.humblet@ieee.org>
|
||||||
|
|
||||||
|
* security.cc (get_user_local_groups): Use LookupAccountSid to find the
|
||||||
|
local equivalent of BUILTIN.
|
||||||
|
|
||||||
2002-12-14 Christopher Faylor <cgf@redhat.com>
|
2002-12-14 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
* pipe.cc (make_pipe): Set fork fixup flag for read pipe.
|
* pipe.cc (make_pipe): Set fork fixup flag for read pipe.
|
||||||
|
|
|
@ -389,16 +389,19 @@ get_user_local_groups (cygsidlist &grp_list, PSID pusersid)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
char bgroup[sizeof ("BUILTIN\\") + GNLEN] = "BUILTIN\\";
|
char bgroup[INTERNET_MAX_HOST_NAME_LENGTH + GNLEN + 2];
|
||||||
char lgroup[INTERNET_MAX_HOST_NAME_LENGTH + GNLEN + 2];
|
char lgroup[INTERNET_MAX_HOST_NAME_LENGTH + GNLEN + 2];
|
||||||
const DWORD blen = sizeof ("BUILTIN\\") - 1;
|
DWORD blen, llen;
|
||||||
DWORD llen = INTERNET_MAX_HOST_NAME_LENGTH + 1;
|
SID_NAME_USE use;
|
||||||
if (!GetComputerNameA (lgroup, &llen))
|
|
||||||
|
blen = llen = INTERNET_MAX_HOST_NAME_LENGTH + 1;
|
||||||
|
if (!LookupAccountSid (NULL, well_known_admins_sid, lgroup, &llen, bgroup, &blen, &use)
|
||||||
|
|| !GetComputerNameA (lgroup, &(llen = INTERNET_MAX_HOST_NAME_LENGTH + 1)))
|
||||||
{
|
{
|
||||||
__seterrno ();
|
__seterrno ();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
lgroup[llen++] = '\\';
|
bgroup[blen++] = lgroup[llen++] = '\\';
|
||||||
|
|
||||||
for (DWORD i = 0; i < cnt; ++i)
|
for (DWORD i = 0; i < cnt; ++i)
|
||||||
if (is_group_member (buf[i].lgrpi0_name, pusersid, grp_list))
|
if (is_group_member (buf[i].lgrpi0_name, pusersid, grp_list))
|
||||||
|
@ -407,8 +410,8 @@ get_user_local_groups (cygsidlist &grp_list, PSID pusersid)
|
||||||
DWORD glen = sizeof (gsid);
|
DWORD glen = sizeof (gsid);
|
||||||
char domain[INTERNET_MAX_HOST_NAME_LENGTH + 1];
|
char domain[INTERNET_MAX_HOST_NAME_LENGTH + 1];
|
||||||
DWORD dlen = sizeof (domain);
|
DWORD dlen = sizeof (domain);
|
||||||
SID_NAME_USE use = SidTypeInvalid;
|
|
||||||
|
|
||||||
|
use = SidTypeInvalid;
|
||||||
sys_wcstombs (bgroup + blen, buf[i].lgrpi0_name, GNLEN + 1);
|
sys_wcstombs (bgroup + blen, buf[i].lgrpi0_name, GNLEN + 1);
|
||||||
if (!LookupAccountName (NULL, bgroup, gsid, &glen, domain, &dlen, &use))
|
if (!LookupAccountName (NULL, bgroup, gsid, &glen, domain, &dlen, &use))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue