reactos/ntoskrnl
George Bișoc 697a52aa33
[NTOS:CM] Do not acquire the lock twice when the Object Manager calls CmpSecurityMethod
Whenever a security request is invoked into a key object, such as when requesting
information from its security descriptor, the Object Manager will execute
the CmpSecurityMethod method to do the job.

The problem is that CmpSecurityMethod is not aware if the key control block
of the key body already has a lock acquired which means the function will attempt
to acquire a lock again, leading to a deadlock. This happens if the same
calling thread locks the KCB but it also wants to acquire security information
with ObCheckObjectAccess in CmpDoOpen.

Windows has a hack in CmpSecurityMethod where the passed KCB pointer is ORed
with a bitfield mask to avoid locking in all cases. This is ugly because it negates
every thread to acquire a lock if at least one has it.
2023-10-01 20:06:02 +02:00
..
cache [NTOS:Mm] Fix race condition in _MmSetPageEntrySectionSegment 2023-07-29 14:00:44 +03:00
cc [NTOS:CC][NTOS:MM] Add back CcRosTrimCache and add Delay for MM to work. (#5630) 2023-09-06 13:34:25 +02:00
config [NTOS:CM] Do not acquire the lock twice when the Object Manager calls CmpSecurityMethod 2023-10-01 20:06:02 +02:00
dbgk [NTOSKRNL] Regroup the pool allocation tags in one dedicated place 2021-12-27 18:57:03 +01:00
ex [NTOS:EX] Initialize ExpResourceTimeoutCount also via the "Session Manager/ResourceTimeoutCount" registry value (#4089) 2023-09-21 13:33:28 +02:00
fsrtl [NTOS] Properly implement and use FsRtlAcquireFileForModWriteEx 2022-11-02 19:41:04 +01:00
fstub [NTOS:IO/FSTUB] Fix the determination of 'SingleDisk' in IoGetBootDiskInformation(). 2021-06-11 02:21:47 +02:00
inbv 🎊 🍾 🥳 Happy New Year 2023 to the ReactOS Community! 🎆 ⚛️ ☢️ 2023-01-01 00:00:00 +03:00
include [NTOS:CM] Do not acquire the lock twice when the Object Manager calls CmpSecurityMethod 2023-10-01 20:06:02 +02:00
io [NTOS:IO] Implement IoConnectInterruptEx for fully specified interrupt types (#5416) 2023-07-14 16:17:27 -07:00
kd [NTOS:KD] Fix release builds. 2023-08-31 17:10:34 +02:00
kd64 [NTOS] Include kdbg/kdb.h only in the files that really need it. 2023-04-11 00:44:10 +02:00
kdbg [NTOS:KD:KDBG] Integration into KD framework (Part 2/3) 2023-08-31 16:09:49 +02:00
ke [NTOSKRNL/x64] Fix a bug in KeSwitchKernelStack 2023-09-17 10:37:50 +03:00
lpc [NTOS:LPC] Ensure debug-traced pointer-given user-mode data is captured. (#4399) 2023-05-17 17:40:37 +02:00
mm [NTOS:MM] Fix missing \n in unimplemented codepath DPRINT 2023-09-30 19:06:30 +02:00
ntkrnlmp [CMAKE] Use the "kernel" module type for ntoskrnl and ntkrnlmp 2021-03-23 11:18:43 +01:00
ob [NTOS:OB] Fix the SAL2 annotation of ObQueryTypeInfo 2023-04-22 17:18:57 +02:00
po [NTOSKRNL] Regroup the pool allocation tags in one dedicated place 2021-12-27 18:57:03 +01:00
ps [NTOS:MM/PS] Remove code duplication between LookupEntryPoint/MiLocateExportName/MiFindExportedRoutineByName. (#4918) 2023-08-29 17:26:57 +02:00
rtl [NDK] Add missing x64 unwind definitions 2022-07-20 23:57:42 +02:00
se [NTOS:SE] Let SepGetSidFromAce figure out the ACE type 2023-08-23 17:54:47 +02:00
tests
vdm [FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
vf
wmi [REACTOS] Fix traces with missing arguments. 2021-11-21 12:57:35 -05:00
CMakeLists.txt [CMAKE] Elimitate the use of GCC and CLANG variables 2022-05-27 01:37:34 +03:00
guid.c [NTOSKRNL] Rewrite IoAssignDriveLetters to make NT5 compliant 2019-10-21 18:28:40 +02:00
KrnlFun.c
ntdll.S
ntos.cmake [NTOS:KD:KDBG] Integration into KD framework (Part 1/3) 2023-08-31 16:07:51 +02:00
ntoskrnl.rc [NTOS:INBV] Refactor boot screen code and resources (#1649) 2019-08-20 01:52:25 +02:00
ntoskrnl.spec [NTOS:IO] Implement IoConnectInterruptEx for fully specified interrupt types (#5416) 2023-07-14 16:17:27 -07:00
sysfuncs.lst