mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 23:25:45 +00:00
[NTOSKRNL]
- Fix returning uninitialized status (CID 15086) svn path=/trunk/; revision=55130
This commit is contained in:
parent
52654ceb2e
commit
2d3c112a48
1 changed files with 23 additions and 44 deletions
|
@ -266,7 +266,6 @@ SepCaptureSid(IN PSID InputSid,
|
||||||
{
|
{
|
||||||
ULONG SidSize = 0;
|
ULONG SidSize = 0;
|
||||||
PISID NewSid, Sid = (PISID)InputSid;
|
PISID NewSid, Sid = (PISID)InputSid;
|
||||||
NTSTATUS Status;
|
|
||||||
|
|
||||||
PAGED_CODE();
|
PAGED_CODE();
|
||||||
|
|
||||||
|
@ -274,14 +273,9 @@ SepCaptureSid(IN PSID InputSid,
|
||||||
{
|
{
|
||||||
_SEH2_TRY
|
_SEH2_TRY
|
||||||
{
|
{
|
||||||
ProbeForRead(Sid,
|
ProbeForRead(Sid, FIELD_OFFSET(SID, SubAuthority), sizeof(UCHAR));
|
||||||
FIELD_OFFSET(SID,
|
|
||||||
SubAuthority),
|
|
||||||
sizeof(UCHAR));
|
|
||||||
SidSize = RtlLengthRequiredSid(Sid->SubAuthorityCount);
|
SidSize = RtlLengthRequiredSid(Sid->SubAuthorityCount);
|
||||||
ProbeForRead(Sid,
|
ProbeForRead(Sid, SidSize, sizeof(UCHAR));
|
||||||
SidSize,
|
|
||||||
sizeof(UCHAR));
|
|
||||||
}
|
}
|
||||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
{
|
||||||
|
@ -291,58 +285,43 @@ SepCaptureSid(IN PSID InputSid,
|
||||||
_SEH2_END;
|
_SEH2_END;
|
||||||
|
|
||||||
/* allocate a SID and copy it */
|
/* allocate a SID and copy it */
|
||||||
NewSid = ExAllocatePool(PoolType,
|
NewSid = ExAllocatePool(PoolType, SidSize);
|
||||||
SidSize);
|
if (!NewSid)
|
||||||
if (NewSid != NULL)
|
return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
{
|
|
||||||
_SEH2_TRY
|
|
||||||
{
|
|
||||||
RtlCopyMemory(NewSid,
|
|
||||||
Sid,
|
|
||||||
SidSize);
|
|
||||||
|
|
||||||
*CapturedSid = NewSid;
|
_SEH2_TRY
|
||||||
}
|
|
||||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
|
||||||
{
|
|
||||||
/* Free the SID and return the exception code */
|
|
||||||
ExFreePoolWithTag(NewSid, TAG_SID);
|
|
||||||
_SEH2_YIELD(return _SEH2_GetExceptionCode());
|
|
||||||
}
|
|
||||||
_SEH2_END;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
Status = STATUS_INSUFFICIENT_RESOURCES;
|
RtlCopyMemory(NewSid, Sid, SidSize);
|
||||||
|
|
||||||
|
*CapturedSid = NewSid;
|
||||||
}
|
}
|
||||||
|
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||||
|
{
|
||||||
|
/* Free the SID and return the exception code */
|
||||||
|
ExFreePoolWithTag(NewSid, TAG_SID);
|
||||||
|
_SEH2_YIELD(return _SEH2_GetExceptionCode());
|
||||||
|
}
|
||||||
|
_SEH2_END;
|
||||||
}
|
}
|
||||||
else if (!CaptureIfKernel)
|
else if (!CaptureIfKernel)
|
||||||
{
|
{
|
||||||
*CapturedSid = InputSid;
|
*CapturedSid = InputSid;
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SidSize = RtlLengthRequiredSid(Sid->SubAuthorityCount);
|
SidSize = RtlLengthRequiredSid(Sid->SubAuthorityCount);
|
||||||
|
|
||||||
/* allocate a SID and copy it */
|
/* allocate a SID and copy it */
|
||||||
NewSid = ExAllocatePool(PoolType,
|
NewSid = ExAllocatePool(PoolType, SidSize);
|
||||||
SidSize);
|
if (NewSid == NULL)
|
||||||
if (NewSid != NULL)
|
return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
{
|
|
||||||
RtlCopyMemory(NewSid,
|
|
||||||
Sid,
|
|
||||||
SidSize);
|
|
||||||
|
|
||||||
*CapturedSid = NewSid;
|
RtlCopyMemory(NewSid, Sid, SidSize);
|
||||||
}
|
|
||||||
else
|
*CapturedSid = NewSid;
|
||||||
{
|
|
||||||
Status = STATUS_INSUFFICIENT_RESOURCES;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue