Cygwin: passwd/group: store account name case correct
When looking up valid accounts by name, LookupAccountName returns a SID and a case-correct domain name. However, the name was input and LookupAccountName is case-insensitive, so the name is not necessarily written the same way as in SAM or AD. Fix that by doing a reverse lookup on the just fetched SID. This fetches the account name in the correct case. Override the incoming name with the case correct name from LookupAccountSid. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
43fa1aafa6
commit
9a3cc77b2a
|
@ -109,3 +109,7 @@ Bug Fixes
|
||||||
|
|
||||||
- Fix O_APPEND handling on files when calling non-Cygwin applications
|
- Fix O_APPEND handling on files when calling non-Cygwin applications
|
||||||
Addresses: https://cygwin.com/ml/cygwin/2019-02/msg00081.html
|
Addresses: https://cygwin.com/ml/cygwin/2019-02/msg00081.html
|
||||||
|
|
||||||
|
- Fix case correctness of passwd/group entries fetched via getpwnam
|
||||||
|
or getgrnam.
|
||||||
|
Addresses: https://cygwin.com/ml/cygwin/2019-02/msg00109.html
|
||||||
|
|
|
@ -2046,6 +2046,16 @@ pwdgrp::fetch_account_from_windows (fetch_user_arg_t &arg, cyg_ldap *pldap)
|
||||||
/* We can skip the backslash in the rest of this function. */
|
/* We can skip the backslash in the rest of this function. */
|
||||||
if (p)
|
if (p)
|
||||||
name = p + 1;
|
name = p + 1;
|
||||||
|
/* Reverse lookup name from sid to make sure the username in
|
||||||
|
our passwd/group data is written exactly as in the user DB. */
|
||||||
|
nlen = UNLEN + 1;
|
||||||
|
dlen = DNLEN + 1;
|
||||||
|
ret = LookupAccountSidW (NULL, sid, name, &nlen, dom, &dlen, &acc_type);
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
system_printf ("LookupAccountNameW (%W), %E", name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
/* Last but not least, some validity checks on the name style. */
|
/* Last but not least, some validity checks on the name style. */
|
||||||
if (!fq_name)
|
if (!fq_name)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue