diff options
Diffstat (limited to 'src/vm/securityattributes.inl')
-rw-r--r-- | src/vm/securityattributes.inl | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/vm/securityattributes.inl b/src/vm/securityattributes.inl new file mode 100644 index 0000000000..a5f809120f --- /dev/null +++ b/src/vm/securityattributes.inl @@ -0,0 +1,44 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. +// + +// + + +#ifndef __SECURITYATTRIBUTES_INL__ +#define __SECURITYATTRIBUTES_INL__ + +#include "securityattributes.h" + + +inline bool SecurityAttributes::ContainsBuiltinCASPermsOnly(CORSEC_ATTRSET* pAttrSet) +{ + bool hostProtectiononly; + return ContainsBuiltinCASPermsOnly(pAttrSet, &hostProtectiononly); +} + + +inline bool SecurityAttributes::ContainsBuiltinCASPermsOnly(CORSEC_ATTRSET* pAttrSet, bool* pHostProtectionOnly) +{ + DWORD n; + *pHostProtectionOnly = true; // Assume that it's all HostProtection only + for(n = 0; n < pAttrSet->dwAttrCount; n++) + { + CORSEC_ATTRIBUTE* pAttr = &pAttrSet->pAttrs[n]; + if(!IsBuiltInCASPermissionAttribute(pAttr)) + { + *pHostProtectionOnly = false; + return false; + } + if (*pHostProtectionOnly && !IsHostProtectionAttribute(pAttr)) + { + *pHostProtectionOnly = false; + } + } + + return true; +} + +#endif // __SECURITYATTRIBUTES_INL__ + |