From: Pierre Schweitzer Date: Sun, 25 Mar 2018 16:26:32 +0000 (+0200) Subject: [NTOSKRNL] Properly delete VACB in CcRosCreateVacb() when mapping fails. X-Git-Tag: 0.4.9-RC~368 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=ffd524275e721a192b91cbc65819ee377043eb79 [NTOSKRNL] Properly delete VACB in CcRosCreateVacb() when mapping fails. Spotted by Thomas. CORE-14478 CORE-14502 --- diff --git a/ntoskrnl/cc/view.c b/ntoskrnl/cc/view.c index 9cc45bdb3ed..ba87c5e5103 100644 --- a/ntoskrnl/cc/view.c +++ b/ntoskrnl/cc/view.c @@ -831,18 +831,20 @@ CcRosCreateVacb ( } #endif + /* Reference it to allow release */ + CcRosVacbIncRefCount(current); + Status = CcRosMapVacbInKernelSpace(current); if (!NT_SUCCESS(Status)) { RemoveEntryList(¤t->CacheMapVacbListEntry); RemoveEntryList(¤t->VacbLruListEntry); - CcRosReleaseVacbLock(current); + CcRosReleaseVacb(SharedCacheMap, current, FALSE, + FALSE, FALSE); + CcRosVacbDecRefCount(current); ExFreeToNPagedLookasideList(&VacbLookasideList, current); } - /* Reference it to allow release */ - CcRosVacbIncRefCount(current); - return Status; }