[NTOS] Improve MmCleanProcessAddressSpace
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Sun, 14 Aug 2022 20:33:18 +0000 (23:33 +0300)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Thu, 1 Dec 2022 18:17:40 +0000 (20:17 +0200)
ntoskrnl/mm/ARM3/procsup.c

index f2a93ce..7e31412 100644 (file)
@@ -1270,12 +1270,17 @@ MmCleanProcessAddressSpace(IN PEPROCESS Process)
     PMM_AVL_TABLE VadTree;
     PETHREAD Thread = PsGetCurrentThread();
 
-    /* Only support this */
-    ASSERT(Process->AddressSpaceInitialized == 2);
-
     /* Remove from the session */
     MiSessionRemoveProcess();
 
+    /* Abort early, when the address space wasn't fully initialized */
+    if (Process->AddressSpaceInitialized < 2)
+    {
+        DPRINT1("Incomplete address space for Process %p. Might leak resources.\n",
+                Process);
+        return;
+    }
+
     /* Lock the process address space from changes */
     MmLockAddressSpace(&Process->Vm);
     MiLockProcessWorkingSetUnsafe(Process, Thread);