[SAMSRV]
authorEric Kohl <eric.kohl@reactos.org>
Sun, 5 Jan 2014 12:00:16 +0000 (12:00 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Sun, 5 Jan 2014 12:00:16 +0000 (12:00 +0000)
SamrGetAliasMembership: Do not overwrite enties of the RID array.

svn path=/trunk/; revision=61536

reactos/dll/win32/samsrv/samrpc.c

index ab67864..86c6c1d 100644 (file)
@@ -3250,6 +3250,7 @@ SamrGetAliasMembership(IN SAMPR_HANDLE DomainHandle,
     ULONG ValueCount;
     ULONG DataLength;
     ULONG i, j;
+    ULONG RidIndex;
     NTSTATUS Status;
     WCHAR NameBuffer[9];
 
@@ -3334,6 +3335,7 @@ TRACE("Open %S\n", MemberSidString);
         goto done;
     }
 
+    RidIndex = 0;
     for (i = 0; i < SidArray->Count; i++)
     {
         ConvertSidToStringSid(SidArray->Sids[i].SidPointer, &MemberSidString);
@@ -3365,7 +3367,9 @@ TRACE("Open %S\n", MemberSidString);
                                                    NULL);
                     if (NT_SUCCESS(Status))
                     {
-                        RidArray[j] = wcstoul(NameBuffer, NULL, 16);
+                        /* FIXME: Do not return each RID more than once. */
+                        RidArray[RidIndex] = wcstoul(NameBuffer, NULL, 16);
+                        RidIndex++;
                     }
                 }
             }