From 6d701b4b05c465e1e01abd911949c9645e193f0f Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Mon, 9 Oct 2023 21:39:35 +0300 Subject: [PATCH] [NTOS:MM] Add ASSERTS to MmLockAddressSpace to guarantee lock ordering --- ntoskrnl/include/internal/mm.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ntoskrnl/include/internal/mm.h b/ntoskrnl/include/internal/mm.h index f637014794a..d1dad7a25c1 100644 --- a/ntoskrnl/include/internal/mm.h +++ b/ntoskrnl/include/internal/mm.h @@ -1690,6 +1690,12 @@ FORCEINLINE VOID MmLockAddressSpace(PMMSUPPORT AddressSpace) { + ASSERT(!PsGetCurrentThread()->OwnsProcessWorkingSetExclusive); + ASSERT(!PsGetCurrentThread()->OwnsProcessWorkingSetShared); + ASSERT(!PsGetCurrentThread()->OwnsSystemWorkingSetExclusive); + ASSERT(!PsGetCurrentThread()->OwnsSystemWorkingSetShared); + ASSERT(!PsGetCurrentThread()->OwnsSessionWorkingSetExclusive); + ASSERT(!PsGetCurrentThread()->OwnsSessionWorkingSetShared); KeAcquireGuardedMutex(&CONTAINING_RECORD(AddressSpace, EPROCESS, Vm)->AddressCreationLock); }