diff --git a/ntoskrnl/config/cmparse.c b/ntoskrnl/config/cmparse.c index 53f2d3adbab..38346c2501d 100644 --- a/ntoskrnl/config/cmparse.c +++ b/ntoskrnl/config/cmparse.c @@ -367,14 +367,14 @@ CmpDoCreateChild(IN PHHIVE Hive, CmpKeyObjectType->TypeInfo.PoolType); if (NT_SUCCESS(Status)) { - Status = CmpSecurityMethod(*Object, - AssignSecurityDescriptor, - NULL, - NewDescriptor, - NULL, - NULL, - CmpKeyObjectType->TypeInfo.PoolType, - &CmpKeyObjectType->TypeInfo.GenericMapping); + /* + * FIXME: We must acquire a security lock when assigning + * a security descriptor to this hive but since the + * CmpAssignSecurityDescriptor function does nothing + * (we lack the necessary security management implementations + * anyway), do not do anything for now. + */ + Status = CmpAssignSecurityDescriptor(Kcb, NewDescriptor); } /* Now that the security descriptor is copied in the hive, we can free the original */ diff --git a/ntoskrnl/include/internal/cm.h b/ntoskrnl/include/internal/cm.h index a0921e4eb3b..eab9a1c9b61 100644 --- a/ntoskrnl/include/internal/cm.h +++ b/ntoskrnl/include/internal/cm.h @@ -510,6 +510,15 @@ CmpDestroyHiveViewList( IN PCMHIVE Hive ); +// +// Security Management Functions +// +NTSTATUS +CmpAssignSecurityDescriptor( + IN PCM_KEY_CONTROL_BLOCK Kcb, + IN PSECURITY_DESCRIPTOR SecurityDescriptor +); + // // Security Cache Functions //