mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 13:35:47 +00:00
[NTOS:EX]
- Remove superfluous dereference in NtCreateProfile - Allocate the right size for KPROFILE object - Don't leak the KPROFILE when deleting an EPROFILE - Avoid some casts CORE-10066 svn path=/trunk/; revision=68852
This commit is contained in:
parent
dd088b28fc
commit
f917e6193e
1 changed files with 4 additions and 4 deletions
|
@ -42,7 +42,7 @@ ExpDeleteProfile(PVOID ObjectBody)
|
|||
ULONG State;
|
||||
|
||||
/* Typecast the Object */
|
||||
Profile = (PEPROFILE)ObjectBody;
|
||||
Profile = ObjectBody;
|
||||
|
||||
/* Check if there if the Profile was started */
|
||||
if (Profile->LockedBufferAddress)
|
||||
|
@ -55,6 +55,7 @@ ExpDeleteProfile(PVOID ObjectBody)
|
|||
MmUnmapLockedPages(Profile->LockedBufferAddress, Profile->Mdl);
|
||||
MmUnlockPages(Profile->Mdl);
|
||||
IoFreeMdl(Profile->Mdl);
|
||||
ExFreePoolWithTag(Profile->ProfileObject, TAG_PROFILE);
|
||||
}
|
||||
|
||||
/* Check if a Process is associated and reference it */
|
||||
|
@ -247,7 +248,6 @@ NtCreateProfile(OUT PHANDLE ProfileHandle,
|
|||
0,
|
||||
NULL,
|
||||
&hProfile);
|
||||
ObDereferenceObject(Profile);
|
||||
|
||||
/* Check for Success */
|
||||
if (!NT_SUCCESS(Status))
|
||||
|
@ -361,7 +361,7 @@ NtStartProfile(IN HANDLE ProfileHandle)
|
|||
|
||||
/* Allocate a Kernel Profile Object. */
|
||||
ProfileObject = ExAllocatePoolWithTag(NonPagedPool,
|
||||
sizeof(EPROFILE),
|
||||
sizeof(*ProfileObject),
|
||||
TAG_PROFILE);
|
||||
if (!ProfileObject)
|
||||
{
|
||||
|
@ -396,7 +396,7 @@ NtStartProfile(IN HANDLE ProfileHandle)
|
|||
/* Initialize the Kernel Profile Object */
|
||||
Profile->ProfileObject = ProfileObject;
|
||||
KeInitializeProfile(ProfileObject,
|
||||
(PKPROCESS)Profile->Process,
|
||||
&Profile->Process->Pcb,
|
||||
Profile->RangeBase,
|
||||
Profile->RangeSize,
|
||||
Profile->BucketSize,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue