Fix the SamQuerySecurityObject implementation.

svn path=/trunk/; revision=60892
This commit is contained in:
Eric Kohl 2013-11-09 13:06:42 +00:00
parent 6800c4f9e2
commit 3f83392306

View file

@ -1609,23 +1609,19 @@ SamQuerySecurityObject(IN SAM_HANDLE ObjectHandle,
IN SECURITY_INFORMATION SecurityInformation,
OUT PSECURITY_DESCRIPTOR *SecurityDescriptor)
{
SAMPR_SR_SECURITY_DESCRIPTOR LocalSecurityDescriptor;
PSAMPR_SR_SECURITY_DESCRIPTOR pLocalSecurityDescriptor;
PSAMPR_SR_SECURITY_DESCRIPTOR SamSecurityDescriptor = NULL;
NTSTATUS Status;
TRACE("SamQuerySecurityObject(%p %lu %p)\n",
ObjectHandle, SecurityInformation, SecurityDescriptor);
LocalSecurityDescriptor.Length = 0;
LocalSecurityDescriptor.SecurityDescriptor = NULL;
*SecurityDescriptor = NULL;
RpcTryExcept
{
pLocalSecurityDescriptor = &LocalSecurityDescriptor;
Status = SamrQuerySecurityObject((SAMPR_HANDLE)ObjectHandle,
SecurityInformation,
&pLocalSecurityDescriptor);
&SamSecurityDescriptor);
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
@ -1633,7 +1629,17 @@ SamQuerySecurityObject(IN SAM_HANDLE ObjectHandle,
}
RpcEndExcept;
*SecurityDescriptor = LocalSecurityDescriptor.SecurityDescriptor;
TRACE("SamSecurityDescriptor: %p\n", SamSecurityDescriptor);
if (SamSecurityDescriptor != NULL)
{
TRACE("SamSecurityDescriptor->Length: %lu\n", SamSecurityDescriptor->Length);
TRACE("SamSecurityDescriptor->SecurityDescriptor: %p\n", SamSecurityDescriptor->SecurityDescriptor);
*SecurityDescriptor = SamSecurityDescriptor->SecurityDescriptor;
midl_user_free(SamSecurityDescriptor);
}
return Status;
}