mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
[SAMSRV]
Fix SamrRemoveMemberFromGroup. svn path=/trunk/; revision=58187
This commit is contained in:
parent
b8577036db
commit
8c365a1421
|
@ -90,18 +90,15 @@ SampRemoveMemberFromGroup(IN PSAM_DB_OBJECT GroupObject,
|
|||
ULONG i;
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = SampGetObjectAttribute(GroupObject,
|
||||
L"Members",
|
||||
NULL,
|
||||
NULL,
|
||||
&Length);
|
||||
SampGetObjectAttribute(GroupObject,
|
||||
L"Members",
|
||||
NULL,
|
||||
NULL,
|
||||
&Length);
|
||||
|
||||
if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
|
||||
if (Length == 0)
|
||||
return STATUS_MEMBER_NOT_IN_GROUP;
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
return Status;
|
||||
|
||||
MembersBuffer = midl_user_allocate(Length);
|
||||
if (MembersBuffer == NULL)
|
||||
{
|
||||
|
@ -126,12 +123,15 @@ SampRemoveMemberFromGroup(IN PSAM_DB_OBJECT GroupObject,
|
|||
{
|
||||
Length -= sizeof(ULONG);
|
||||
Status = STATUS_SUCCESS;
|
||||
break;
|
||||
}
|
||||
|
||||
if (Status == STATUS_SUCCESS && i < MembersCount - 1)
|
||||
{
|
||||
MembersBuffer[i] = MembersBuffer[i + 1];
|
||||
if (MembersCount - i - 1 > 0)
|
||||
{
|
||||
CopyMemory(&MembersBuffer[i],
|
||||
&MembersBuffer[i + 1],
|
||||
(MembersCount - i - 1) * sizeof(ULONG));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -117,23 +117,20 @@ SampRemoveGroupMembershipFromUser(IN PSAM_DB_OBJECT UserObject,
|
|||
ULONG GroupsCount = 0;
|
||||
ULONG Length = 0;
|
||||
ULONG i;
|
||||
NTSTATUS Status;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
||||
TRACE("(%p %lu)\n",
|
||||
UserObject, GroupId);
|
||||
|
||||
Status = SampGetObjectAttribute(UserObject,
|
||||
L"Groups",
|
||||
NULL,
|
||||
NULL,
|
||||
&Length);
|
||||
SampGetObjectAttribute(UserObject,
|
||||
L"Groups",
|
||||
NULL,
|
||||
NULL,
|
||||
&Length);
|
||||
|
||||
if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
|
||||
if (Length == 0)
|
||||
return STATUS_MEMBER_NOT_IN_GROUP;
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
return Status;
|
||||
|
||||
GroupsBuffer = midl_user_allocate(Length);
|
||||
if (GroupsBuffer == NULL)
|
||||
{
|
||||
|
@ -158,14 +155,15 @@ SampRemoveGroupMembershipFromUser(IN PSAM_DB_OBJECT UserObject,
|
|||
{
|
||||
Length -= sizeof(GROUP_MEMBERSHIP);
|
||||
Status = STATUS_SUCCESS;
|
||||
break;
|
||||
}
|
||||
|
||||
if (Status == STATUS_SUCCESS && i < GroupsCount - 1)
|
||||
{
|
||||
CopyMemory(&GroupsBuffer[i],
|
||||
&GroupsBuffer[i + 1],
|
||||
sizeof(GROUP_MEMBERSHIP));
|
||||
if (GroupsCount - i - 1 > 0)
|
||||
{
|
||||
CopyMemory(&GroupsBuffer[i],
|
||||
&GroupsBuffer[i + 1],
|
||||
(GroupsCount - i - 1) * sizeof(GROUP_MEMBERSHIP));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue