Skip to content

Commit d907356

Browse files
committed
Fix Linux/Mac builds
1 parent c6aeaa6 commit d907356

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

lib/Common/Core/GlobalSecurityPolicy.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ GlobalSecurityPolicy GlobalSecurityObject;
1616
// Note: 'volatile' is necessary here otherwise the compiler assumes these are constants initialized to '0' and will constant propagate them...
1717
__declspec(allocate(".mrdata")) volatile GlobalSecurityPolicy::ReadOnlyData GlobalSecurityPolicy::readOnlyData =
1818
{
19+
#if defined(_CONTROL_FLOW_GUARD)
1920
nullptr,
2021
nullptr,
22+
#endif
2123
false,
2224
false,
2325
false
@@ -141,6 +143,7 @@ GlobalSecurityPolicy::IsSetProcessValidCallTargetsAllowed()
141143
return !readOnlyData.disableSetProcessValidCallTargets;
142144
}
143145

146+
#if defined(_CONTROL_FLOW_GUARD)
144147
BOOL
145148
DECLSPEC_GUARDNOCF GlobalSecurityPolicy::GetMitigationPolicyForProcess(HANDLE hProcess, PROCESS_MITIGATION_POLICY mitigationPolicy, PVOID lpBuffer, SIZE_T dwLength)
146149
{
@@ -152,3 +155,4 @@ DECLSPEC_GUARDNOCF GlobalSecurityPolicy::SetProcessValidCallTargets(HANDLE hProc
152155
{
153156
return GlobalSecurityPolicy::readOnlyData.pfnSetProcessValidCallTargets(hProcess, virtualAddress, regionSize, numberOfOffsets, offsetInformation);
154157
}
158+
#endif //_CONTROL_FLOW_GUARD

lib/Common/Core/GlobalSecurityPolicy.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,33 @@
99
class GlobalSecurityPolicy : private DelayLoadLibrary
1010
{
1111
public:
12+
#if defined(_CONTROL_FLOW_GUARD)
1213
typedef BOOL FNCGetMitigationPolicyForProcess(HANDLE, PROCESS_MITIGATION_POLICY, PVOID, SIZE_T);
1314
typedef FNCGetMitigationPolicyForProcess* PFNCGetMitigationPolicyForProcess;
1415

1516
typedef BOOL FNCSetProcessValidCallTargets(HANDLE, PVOID, SIZE_T, ULONG, PCFG_CALL_TARGET_INFO);
1617
typedef FNCSetProcessValidCallTargets* PFNCSetProcessValidCallTargets;
17-
18+
#endif
1819
GlobalSecurityPolicy();
1920

2021
static void DisableSetProcessValidCallTargets();
2122
static bool IsSetProcessValidCallTargetsAllowed();
2223
static bool IsCFGEnabled();
24+
25+
#if defined(_CONTROL_FLOW_GUARD)
2326
static FNCGetMitigationPolicyForProcess GetMitigationPolicyForProcess;
2427
static FNCSetProcessValidCallTargets SetProcessValidCallTargets;
25-
28+
#endif
2629
LPCTSTR GetLibraryName() const { return _u("api-ms-win-core-memory-l1-1-3.dll"); }
2730

2831
private:
2932
static CriticalSection s_policyCS;
3033

3134
volatile static struct ReadOnlyData {
35+
#if defined(_CONTROL_FLOW_GUARD)
3236
PFNCGetMitigationPolicyForProcess pfnGetProcessMitigationPolicy;
3337
PFNCSetProcessValidCallTargets pfnSetProcessValidCallTargets;
38+
#endif
3439
bool disableSetProcessValidCallTargets;
3540
bool isCFGEnabled;
3641
bool isInitialized;

0 commit comments

Comments
 (0)