- Removed some wrong calls to MmUnlockAddressSpace.
- Dereference the section object after creating the section.
Modified: trunk/reactos/ntoskrnl/ps/process.c
_____
Modified: trunk/reactos/ntoskrnl/ps/process.c
--- trunk/reactos/ntoskrnl/ps/process.c 2005-02-01 16:24:10 UTC (rev
13377)
+++ trunk/reactos/ntoskrnl/ps/process.c 2005-02-01 16:35:30 UTC (rev
13378)
@@ -954,7 +954,6 @@
MmUnlockAddressSpace(&Process->AddressSpace);
if (!NT_SUCCESS(Status))
{
- MmUnlockAddressSpace(&Process->AddressSpace); /* FIXME ? */
DPRINT1("Failed to create shared data page\n");
ObDereferenceObject(Process);
goto exitdereferenceobjects;
@@ -972,7 +971,6 @@
&hProcess);
if (!NT_SUCCESS(Status))
{
- MmUnlockAddressSpace(&Process->AddressSpace); /* FIXME ? */
DPRINT1("Failed to create a handle for the process\n");
ObDereferenceObject(Process);
goto exitdereferenceobjects;
@@ -987,7 +985,6 @@
if (!NT_SUCCESS(Status))
{
DbgPrint("LdrpMapSystemDll failed (Status %x)\n", Status);
- MmUnlockAddressSpace(&Process->AddressSpace); /* FIXME ? */
ObDereferenceObject(Process);
goto exitdereferenceobjects;
}
@@ -1009,11 +1006,10 @@
0,
MEM_COMMIT,
PAGE_READWRITE);
-
+ ObDereferenceObject(SectionObject);
if (!NT_SUCCESS(Status))
{
DbgPrint("Failed to map the process section (Status %x)\n",
Status);
- MmUnlockAddressSpace(&Process->AddressSpace); /* FIXME ? */
ObDereferenceObject(Process);
goto exitdereferenceobjects;
}