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

commit b76de0deaa5c10b9379a92616c96cfdc2b801cb2
Author: Corinna Vinschen <[email protected]>
Date:   Wed Feb 17 16:08:59 2016 +0100

    cyglsa: Drop code handling Windows 2000 and earlier
    
        * cyglsa.c (must_create_logon_sid): Remove.
        (LsaApInitializePackage): Drop checking version and setting
        must_create_logon_sid accordingly.
        (LsaApLogonUserEx): Drop code setting login SID only required on
        Windows 2000 and earlier.
    
    Signed-off-by: Corinna Vinschen <[email protected]>

Diff:
---
 winsup/lsaauth/cyglsa.c | 37 ++-----------------------------------
 1 file changed, 2 insertions(+), 35 deletions(-)

diff --git a/winsup/lsaauth/cyglsa.c b/winsup/lsaauth/cyglsa.c
index 341fdd1..351a892 100644
--- a/winsup/lsaauth/cyglsa.c
+++ b/winsup/lsaauth/cyglsa.c
@@ -20,7 +20,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for 
details. */
 #include "../cygwin/include/cygwin/version.h"
 
 static PLSA_SECPKG_FUNCS funcs;
-static BOOL must_create_logon_sid;
 
 BOOL APIENTRY
 DllMain (HINSTANCE inst, DWORD reason, LPVOID res)
@@ -252,7 +251,6 @@ LsaApInitializePackage (ULONG authp_id, PLSA_SECPKG_FUNCS 
dpt,
                        PLSA_STRING *authp_name)
 {
   PLSA_STRING name = NULL;
-  DWORD vers, major, minor;
 
   /* Set global pointer to lsa helper function table. */
   funcs = dpt;
@@ -271,14 +269,6 @@ LsaApInitializePackage (ULONG authp_id, PLSA_SECPKG_FUNCS 
dpt,
   strcpy (name->Buffer, CYG_LSA_PKGNAME);
   (*authp_name) = name;
 
-  vers = GetVersion ();
-  major = LOBYTE (LOWORD (vers));
-  minor = HIBYTE (LOWORD (vers));
-  /* Check if we're running on Windows 2000 or lower.  If so, we must create
-     the logon sid in the group list by ourselves. */
-  if (major < 5 || (major == 5 && minor == 0))
-    must_create_logon_sid = TRUE;
-
 #ifdef DEBUGGING
   fh = CreateFile ("C:\\cyglsa.dbgout", GENERIC_WRITE,
                   FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
@@ -540,14 +530,6 @@ LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, 
SECURITY_LOGON_TYPE logon_type,
     {
       /* ...on 32 bit systems we just allocate tokinf with the same size as
          we get, copy the whole structure and convert offsets into pointers. */
-
-      /* Allocate LUID for usage in the logon SID on Windows 2000.  This is
-        not done in the 64 bit code above for hopefully obvious reasons... */
-      LUID logon_sid_id;
-
-      if (must_create_logon_sid && !AllocateLocallyUniqueId (&logon_sid_id))
-       return STATUS_INSUFFICIENT_RESOURCES;
-
       if (!(tokinf = funcs->AllocateLsaHeap (authinf->inf_size)))
        return STATUS_NO_MEMORY;
       memcpy (tokinf, &authinf->inf, authinf->inf_size);
@@ -560,22 +542,8 @@ LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, 
SECURITY_LOGON_TYPE logon_type,
              ((PBYTE) tokinf + (LONG_PTR) tokinf->Groups);
       /* Group SIDs */
       for (i = 0; i < tokinf->Groups->GroupCount; ++i)
-       {
-         tokinf->Groups->Groups[i].Sid = (PSID)
-               ((PBYTE) tokinf + (LONG_PTR) tokinf->Groups->Groups[i].Sid);
-         if (must_create_logon_sid
-             && tokinf->Groups->Groups[i].Attributes & SE_GROUP_LOGON_ID
-             && *GetSidSubAuthorityCount (tokinf->Groups->Groups[i].Sid) == 3
-             && *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 0)
-                == SECURITY_LOGON_IDS_RID)
-           {
-             *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 1)
-             = logon_sid_id.HighPart;
-             *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 2)
-             = logon_sid_id.LowPart;
-           }
-       }
-
+       tokinf->Groups->Groups[i].Sid = (PSID)
+             ((PBYTE) tokinf + (LONG_PTR) tokinf->Groups->Groups[i].Sid);
       /* Primary Group SID */
       tokinf->PrimaryGroup.PrimaryGroup = (PSID)
              ((PBYTE) tokinf + (LONG_PTR) tokinf->PrimaryGroup.PrimaryGroup);
@@ -587,7 +555,6 @@ LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, 
SECURITY_LOGON_TYPE logon_type,
       /* Default DACL */
       tokinf->DefaultDacl.DefaultDacl = (PACL)
              ((PBYTE) tokinf + (LONG_PTR) tokinf->DefaultDacl.DefaultDacl);
-
     }
 #endif

Reply via email to