summaryrefslogtreecommitdiffstats
path: root/sandbox/src/policy_broker.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/src/policy_broker.cc')
-rw-r--r--sandbox/src/policy_broker.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/sandbox/src/policy_broker.cc b/sandbox/src/policy_broker.cc
index f2316b0..82701ed 100644
--- a/sandbox/src/policy_broker.cc
+++ b/sandbox/src/policy_broker.cc
@@ -88,11 +88,14 @@ bool SetupNtdllImports(TargetProcess *child) {
#undef INIT_GLOBAL_RTL
bool SetupBasicInterceptions(InterceptionManager* manager) {
+#if !defined(_WIN64)
+ // Bug 27218: We don't have dispatch for some x64 syscalls.
// Interceptions provided by process_thread_policy, without actual policy.
if (!INTERCEPT_NT(manager, NtOpenThread, OPEN_TREAD_ID, 20) ||
!INTERCEPT_NT(manager, NtOpenProcess, OPEN_PROCESS_ID, 20) ||
!INTERCEPT_NT(manager, NtOpenProcessToken, OPEN_PROCESS_TOKEN_ID, 16))
return false;
+#endif
// Interceptions with neither policy nor IPC.
if (!INTERCEPT_NT(manager, NtSetInformationThread, SET_INFORMATION_THREAD_ID,
@@ -101,11 +104,13 @@ bool SetupBasicInterceptions(InterceptionManager* manager) {
return false;
if (win_util::GetWinVersion() >= win_util::WINVERSION_XP) {
+#if !defined(_WIN64)
// Bug 27218: We don't have dispatch for some x64 syscalls.
// This one is also provided by process_thread_policy.
if (!INTERCEPT_NT(manager, NtOpenProcessTokenEx, OPEN_PROCESS_TOKEN_EX_ID,
20))
return false;
+#endif
return INTERCEPT_NT(manager, NtOpenThreadTokenEx, OPEN_THREAD_TOKEN_EX_ID,
24);