* uinfo.cc (cygheap_user::env_domain): Use LookupAccountSidW and
convert user and domain to multibyte strings to make sure to use correct codeset.
This commit is contained in:
parent
5f660ecf24
commit
91d3057085
|
@ -1,3 +1,9 @@
|
|||
2011-03-29 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* uinfo.cc (cygheap_user::env_domain): Use LookupAccountSidW and
|
||||
convert user and domain to multibyte strings to make sure to use
|
||||
correct codeset.
|
||||
|
||||
2011-03-29 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* autoload.cc (UuidCreate): Remove.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* uinfo.cc: user info (uid, gid, etc...)
|
||||
|
||||
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
2006, 2007, 2008 Red Hat, Inc.
|
||||
2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
|
||||
|
||||
This file is part of Cygwin.
|
||||
|
||||
|
@ -382,21 +382,21 @@ cygheap_user::env_domain (const char *name, size_t namelen)
|
|||
if (pwinname && test_uid (pdomain, name, namelen))
|
||||
return pdomain;
|
||||
|
||||
char username[UNLEN + 1];
|
||||
DWORD ulen = sizeof (username);
|
||||
char userdomain[DNLEN + 1];
|
||||
DWORD dlen = sizeof (userdomain);
|
||||
DWORD ulen = UNLEN + 1;
|
||||
WCHAR username[ulen];
|
||||
DWORD dlen = DNLEN + 1;
|
||||
WCHAR userdomain[dlen];
|
||||
SID_NAME_USE use;
|
||||
|
||||
cfree_and_set (pwinname, almost_null);
|
||||
cfree_and_set (pdomain, almost_null);
|
||||
if (!LookupAccountSid (NULL, sid (), username, &ulen,
|
||||
if (!LookupAccountSidW (NULL, sid (), username, &ulen,
|
||||
userdomain, &dlen, &use))
|
||||
__seterrno ();
|
||||
else
|
||||
{
|
||||
pwinname = cstrdup (username);
|
||||
pdomain = cstrdup (userdomain);
|
||||
sys_wcstombs_alloc (&pwinname, HEAP_STR, username);
|
||||
sys_wcstombs_alloc (&pdomain, HEAP_STR, userdomain);
|
||||
}
|
||||
return pdomain;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue