From b8e4af606a1291330ebddde58f167e60ac66299f Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sun, 26 Aug 2018 22:56:25 +0200 Subject: [PATCH] [NTOSKRNL] Properly reset pinning state on pinning failure --- ntoskrnl/cc/pin.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ntoskrnl/cc/pin.c b/ntoskrnl/cc/pin.c index 3a0ee6ed9dc..65525eed83d 100644 --- a/ntoskrnl/cc/pin.c +++ b/ntoskrnl/cc/pin.c @@ -191,6 +191,12 @@ CcPinMappedData ( Result = ExAcquireSharedStarveExclusive(&iBcb->Lock, BooleanFlagOn(Flags, PIN_WAIT)); } + if (!Result) + { + iBcb->Pinned = FALSE; + iBcb->Vacb->PinCount--; + } + return Result; }