mirror of
https://github.com/reactos/reactos.git
synced 2024-07-30 16:18:43 +00:00
[SAMLIB]
Ensure that optional parameters are handled properly. svn path=/trunk/; revision=58093
This commit is contained in:
parent
3441210764
commit
23e600a0d7
|
@ -212,7 +212,7 @@ SamCloseHandle(IN SAM_HANDLE SamHandle)
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
SamConnect(IN OUT PUNICODE_STRING ServerName,
|
SamConnect(IN OUT PUNICODE_STRING ServerName OPTIONAL,
|
||||||
OUT PSAM_HANDLE ServerHandle,
|
OUT PSAM_HANDLE ServerHandle,
|
||||||
IN ACCESS_MASK DesiredAccess,
|
IN ACCESS_MASK DesiredAccess,
|
||||||
IN POBJECT_ATTRIBUTES ObjectAttributes)
|
IN POBJECT_ATTRIBUTES ObjectAttributes)
|
||||||
|
@ -682,7 +682,7 @@ SamGetAliasMembership(IN SAM_HANDLE DomainHandle,
|
||||||
SAMPR_ULONG_ARRAY Membership;
|
SAMPR_ULONG_ARRAY Membership;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
TRACE("SamAliasMembership(%p %ul %p %p %p)\n",
|
TRACE("SamAliasMembership(%p %lu %p %p %p)\n",
|
||||||
DomainHandle, PassedCount, Sids, MembershipCount, Aliases);
|
DomainHandle, PassedCount, Sids, MembershipCount, Aliases);
|
||||||
|
|
||||||
if (Sids == NULL ||
|
if (Sids == NULL ||
|
||||||
|
@ -905,7 +905,7 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
|
||||||
IN ULONG Count,
|
IN ULONG Count,
|
||||||
IN PULONG RelativeIds,
|
IN PULONG RelativeIds,
|
||||||
OUT PUNICODE_STRING *Names,
|
OUT PUNICODE_STRING *Names,
|
||||||
OUT PSID_NAME_USE *Use)
|
OUT PSID_NAME_USE *Use OPTIONAL)
|
||||||
{
|
{
|
||||||
SAMPR_RETURNED_USTRING_ARRAY NamesBuffer = {0, NULL};
|
SAMPR_RETURNED_USTRING_ARRAY NamesBuffer = {0, NULL};
|
||||||
SAMPR_ULONG_ARRAY UseBuffer = {0, NULL};
|
SAMPR_ULONG_ARRAY UseBuffer = {0, NULL};
|
||||||
|
@ -916,7 +916,9 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
|
||||||
DomainHandle, Count, RelativeIds, Names, Use);
|
DomainHandle, Count, RelativeIds, Names, Use);
|
||||||
|
|
||||||
*Names = NULL;
|
*Names = NULL;
|
||||||
*Use = NULL;
|
|
||||||
|
if (Use != NULL)
|
||||||
|
*Use = NULL;
|
||||||
|
|
||||||
RpcTryExcept
|
RpcTryExcept
|
||||||
{
|
{
|
||||||
|
@ -951,13 +953,6 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*Use = midl_user_allocate(Count * sizeof(SID_NAME_USE));
|
|
||||||
if (*Use == NULL)
|
|
||||||
{
|
|
||||||
Status = STATUS_INSUFFICIENT_RESOURCES;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < Count; i++)
|
for (i = 0; i < Count; i++)
|
||||||
{
|
{
|
||||||
(*Names)[i].Length = NamesBuffer.Element[i].Length;
|
(*Names)[i].Length = NamesBuffer.Element[i].Length;
|
||||||
|
@ -968,9 +963,19 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
|
||||||
NamesBuffer.Element[i].Length);
|
NamesBuffer.Element[i].Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
RtlCopyMemory(*Use,
|
if (Use != NULL)
|
||||||
UseBuffer.Element,
|
{
|
||||||
Count * sizeof(SID_NAME_USE));
|
*Use = midl_user_allocate(Count * sizeof(SID_NAME_USE));
|
||||||
|
if (*Use == NULL)
|
||||||
|
{
|
||||||
|
Status = STATUS_INSUFFICIENT_RESOURCES;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
RtlCopyMemory(*Use,
|
||||||
|
UseBuffer.Element,
|
||||||
|
Count * sizeof(SID_NAME_USE));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@ -987,7 +992,7 @@ done:
|
||||||
midl_user_free(*Names);
|
midl_user_free(*Names);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*Use != NULL)
|
if (Use != NULL && *Use != NULL)
|
||||||
midl_user_free(*Use);
|
midl_user_free(*Use);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -623,7 +623,7 @@ SamCloseHandle(IN SAM_HANDLE SamHandle);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
SamConnect(IN OUT PUNICODE_STRING ServerName,
|
SamConnect(IN OUT PUNICODE_STRING ServerName OPTIONAL,
|
||||||
OUT PSAM_HANDLE ServerHandle,
|
OUT PSAM_HANDLE ServerHandle,
|
||||||
IN ACCESS_MASK DesiredAccess,
|
IN ACCESS_MASK DesiredAccess,
|
||||||
IN POBJECT_ATTRIBUTES ObjectAttributes);
|
IN POBJECT_ATTRIBUTES ObjectAttributes);
|
||||||
|
@ -755,7 +755,7 @@ SamLookupIdsInDomain(IN SAM_HANDLE DomainHandle,
|
||||||
IN ULONG Count,
|
IN ULONG Count,
|
||||||
IN PULONG RelativeIds,
|
IN PULONG RelativeIds,
|
||||||
OUT PUNICODE_STRING *Names,
|
OUT PUNICODE_STRING *Names,
|
||||||
OUT PSID_NAME_USE *Use);
|
OUT PSID_NAME_USE *Use OPTIONAL);
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
|
|
Loading…
Reference in a new issue