https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=5dc398f1d9ea628809c56b3aedfe282e68b978f3

commit 5dc398f1d9ea628809c56b3aedfe282e68b978f3
Author: Corinna Vinschen <cori...@vinschen.de>
Date:   Fri Apr 17 11:57:57 2015 +0200

    Fix broken SID in passwd/group entry for unkown account
    
            * uinfo.cc (pwdgrp::fetch_account_from_windows): Always revert SID
            subauth count after checking for known domain.
    
    Signed-off-by: Corinna Vinschen <cori...@vinschen.de>

Diff:
---
 winsup/cygwin/ChangeLog | 5 +++++
 winsup/cygwin/uinfo.cc  | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index e1a61fc..f60dbb9 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
 2015-04-17  Corinna Vinschen  <cori...@vinschen.de>
 
+       * uinfo.cc (pwdgrp::fetch_account_from_windows): Always revert SID
+       subauth count after checking for known domain.
+
+2015-04-17  Corinna Vinschen  <cori...@vinschen.de>
+
        * pwdgrp.h: Add comment to explain below change.
        (struct pg_pwd): Convert sid member to BYTE array.
        (struct pg_grp): Ditto.
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index 6186327..bc5f814 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -2475,10 +2475,10 @@ pwdgrp::fetch_account_from_windows (fetch_user_arg_t 
&arg, cyg_ldap *pldap)
                  posix_offset = fetch_posix_offset (td, &loc_ldap);
                  break;
                }
+         sid_sub_auth_count (sid) = sid_sub_auth_count (sid) + 1;
        }
       if (domain)
        {
-         sid_sub_auth_count (sid) = sid_sub_auth_count (sid) + 1;
          wcscpy (dom, domain);
          __small_swprintf (name = namebuf, L"%W(%u)",
                            is_group () ? L"Group" : L"User",

Reply via email to