[ros-diffs] [greatlrd] 21669: Bug 1345 : patch from w3seek Fixes for BuildTrusteeWithObjectsAndName, BuildTrusteeWithObjectsAndSid and GetTrusteeName A test apps exits also from w3seek not commited.

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Thu Apr 20 06:28:47 CEST 2006


Author: greatlrd
Date: Thu Apr 20 08:28:47 2006
New Revision: 21669

URL: http://svn.reactos.ru/svn/reactos?rev=21669&view=rev
Log:
Bug 1345 : patch from w3seek Fixes for BuildTrusteeWithObjectsAndName, BuildTrusteeWithObjectsAndSid and GetTrusteeName
A test apps exits also from w3seek not commited.

Modified:
    trunk/reactos/dll/win32/advapi32/sec/trustee.c

Modified: trunk/reactos/dll/win32/advapi32/sec/trustee.c
URL: http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/win32/advapi32/sec/trustee.c?rev=21669&r1=21668&r2=21669&view=diff
==============================================================================
--- trunk/reactos/dll/win32/advapi32/sec/trustee.c (original)
+++ trunk/reactos/dll/win32/advapi32/sec/trustee.c Thu Apr 20 08:28:47 2006
@@ -198,14 +198,33 @@
                                 SE_OBJECT_TYPE ObjectType, LPSTR ObjectTypeName,
                                 LPSTR InheritedObjectTypeName, LPSTR Name)
 {
+    DWORD ObjectsPresent = 0;
+
     DPRINT("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
            ObjectType, ObjectTypeName, InheritedObjectTypeName, Name);
 
+    /* Fill the OBJECTS_AND_NAME structure */
+    pObjName->ObjectType = ObjectType;
+    if (ObjectTypeName != NULL)
+    {
+        ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
+    }
+
+    pObjName->InheritedObjectTypeName = InheritedObjectTypeName;
+    if (InheritedObjectTypeName != NULL)
+    {
+        ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
+    }
+
+    pObjName->ObjectsPresent = ObjectsPresent;
+    pObjName->ptstrName = Name;
+
+    /* Fill the TRUSTEE structure */
     pTrustee->pMultipleTrustee = NULL;
     pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
     pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
     pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
-    pTrustee->ptstrName = Name;
+    pTrustee->ptstrName = (LPSTR)pObjName;
 }
 
 
@@ -217,14 +236,33 @@
                                 SE_OBJECT_TYPE ObjectType, LPWSTR ObjectTypeName,
                                 LPWSTR InheritedObjectTypeName, LPWSTR Name)
 {
-    DPRINT("%p %p 0x%08x %p %p %S\n", pTrustee, pObjName,
+    DWORD ObjectsPresent = 0;
+
+    DPRINT("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
            ObjectType, ObjectTypeName, InheritedObjectTypeName, Name);
 
+    /* Fill the OBJECTS_AND_NAME structure */
+    pObjName->ObjectType = ObjectType;
+    if (ObjectTypeName != NULL)
+    {
+        ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
+    }
+
+    pObjName->InheritedObjectTypeName = InheritedObjectTypeName;
+    if (InheritedObjectTypeName != NULL)
+    {
+        ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
+    }
+
+    pObjName->ObjectsPresent = ObjectsPresent;
+    pObjName->ptstrName = Name;
+
+    /* Fill the TRUSTEE structure */
     pTrustee->pMultipleTrustee = NULL;
     pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
     pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
     pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
-    pTrustee->ptstrName = Name;
+    pTrustee->ptstrName = (LPWSTR)pObjName;
 }
 
 
@@ -235,13 +273,42 @@
 BuildTrusteeWithObjectsAndSidA(PTRUSTEEA pTrustee, POBJECTS_AND_SID pObjSid,
                                GUID* pObjectGuid, GUID* pInheritedObjectGuid, PSID pSid)
 {
+    DWORD ObjectsPresent = 0;
+
     DPRINT("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
 
+    /* Fill the OBJECTS_AND_SID structure */
+    if (pObjectGuid != NULL)
+    {
+        pObjSid->ObjectTypeGuid = *pObjectGuid;
+        ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
+    }
+    else
+    {
+        ZeroMemory(&pObjSid->ObjectTypeGuid,
+                   sizeof(GUID));
+    }
+
+    if (pInheritedObjectGuid != NULL)
+    {
+        pObjSid->InheritedObjectTypeGuid = *pInheritedObjectGuid;
+        ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
+    }
+    else
+    {
+        ZeroMemory(&pObjSid->InheritedObjectTypeGuid,
+                   sizeof(GUID));
+    }
+
+    pObjSid->ObjectsPresent = ObjectsPresent;
+    pObjSid->pSid = pSid;
+
+    /* Fill the TRUSTEE structure */
     pTrustee->pMultipleTrustee = NULL;
     pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
     pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
     pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
-    pTrustee->ptstrName = (LPSTR) pSid;
+    pTrustee->ptstrName = (LPSTR) pObjSid;
 }
 
 
@@ -252,13 +319,42 @@
 BuildTrusteeWithObjectsAndSidW(PTRUSTEEW pTrustee, POBJECTS_AND_SID pObjSid,
                                GUID* pObjectGuid, GUID* pInheritedObjectGuid, PSID pSid)
 {
+    DWORD ObjectsPresent = 0;
+
     DPRINT("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
 
+    /* Fill the OBJECTS_AND_SID structure */
+    if (pObjectGuid != NULL)
+    {
+        pObjSid->ObjectTypeGuid = *pObjectGuid;
+        ObjectsPresent |= ACE_OBJECT_TYPE_PRESENT;
+    }
+    else
+    {
+        ZeroMemory(&pObjSid->ObjectTypeGuid,
+                   sizeof(GUID));
+    }
+
+    if (pInheritedObjectGuid != NULL)
+    {
+        pObjSid->InheritedObjectTypeGuid = *pInheritedObjectGuid;
+        ObjectsPresent |= ACE_INHERITED_OBJECT_TYPE_PRESENT;
+    }
+    else
+    {
+        ZeroMemory(&pObjSid->InheritedObjectTypeGuid,
+                   sizeof(GUID));
+    }
+
+    pObjSid->ObjectsPresent = ObjectsPresent;
+    pObjSid->pSid = pSid;
+
+    /* Fill the TRUSTEE structure */
     pTrustee->pMultipleTrustee = NULL;
     pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
     pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
     pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
-    pTrustee->ptstrName = (LPWSTR) pSid;
+    pTrustee->ptstrName = (LPWSTR) pObjSid;
 }
 
 
@@ -328,7 +424,7 @@
 LPSTR WINAPI
 GetTrusteeNameA(PTRUSTEE_A pTrustee)
 {
-  return (pTrustee->TrusteeForm == TRUSTEE_IS_NAME) ? pTrustee->ptstrName : NULL;
+    return pTrustee->ptstrName;
 }
 
 
@@ -338,7 +434,7 @@
 LPWSTR WINAPI
 GetTrusteeNameW(PTRUSTEE_W pTrustee)
 {
-  return (pTrustee->TrusteeForm == TRUSTEE_IS_NAME) ? pTrustee->ptstrName : NULL;
+    return pTrustee->ptstrName;
 }
 
 




More information about the Ros-diffs mailing list