mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
697a52aa33
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. |
||
---|---|---|
.. | ||
internal | ||
config.h | ||
ntoskrnl.h | ||
resource.h | ||
sysfuncs.h | ||
sysfuncs64.h |