| Index: sandbox/win/src/sync_interception.cc
|
| diff --git a/sandbox/win/src/sync_interception.cc b/sandbox/win/src/sync_interception.cc
|
| deleted file mode 100644
|
| index 420d185ab22926e9ce8ea6b0b0e19ccb78d08c1b..0000000000000000000000000000000000000000
|
| --- a/sandbox/win/src/sync_interception.cc
|
| +++ /dev/null
|
| @@ -1,163 +0,0 @@
|
| -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "sandbox/win/src/sync_interception.h"
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include "sandbox/win/src/crosscall_client.h"
|
| -#include "sandbox/win/src/ipc_tags.h"
|
| -#include "sandbox/win/src/policy_params.h"
|
| -#include "sandbox/win/src/policy_target.h"
|
| -#include "sandbox/win/src/sandbox_factory.h"
|
| -#include "sandbox/win/src/sandbox_nt_util.h"
|
| -#include "sandbox/win/src/sharedmem_ipc_client.h"
|
| -#include "sandbox/win/src/target_services.h"
|
| -
|
| -namespace sandbox {
|
| -
|
| -ResultCode ProxyCreateEvent(LPCWSTR name,
|
| - uint32_t initial_state,
|
| - EVENT_TYPE event_type,
|
| - void* ipc_memory,
|
| - CrossCallReturn* answer) {
|
| - CountedParameterSet<NameBased> params;
|
| - params[NameBased::NAME] = ParamPickerMake(name);
|
| -
|
| - if (!QueryBroker(IPC_CREATEEVENT_TAG, params.GetBase()))
|
| - return SBOX_ERROR_GENERIC;
|
| -
|
| - SharedMemIPCClient ipc(ipc_memory);
|
| - ResultCode code = CrossCall(ipc, IPC_CREATEEVENT_TAG, name, event_type,
|
| - initial_state, answer);
|
| - return code;
|
| -}
|
| -
|
| -ResultCode ProxyOpenEvent(LPCWSTR name,
|
| - uint32_t desired_access,
|
| - void* ipc_memory,
|
| - CrossCallReturn* answer) {
|
| - CountedParameterSet<OpenEventParams> params;
|
| - params[OpenEventParams::NAME] = ParamPickerMake(name);
|
| - params[OpenEventParams::ACCESS] = ParamPickerMake(desired_access);
|
| -
|
| - if (!QueryBroker(IPC_OPENEVENT_TAG, params.GetBase()))
|
| - return SBOX_ERROR_GENERIC;
|
| -
|
| - SharedMemIPCClient ipc(ipc_memory);
|
| - ResultCode code = CrossCall(ipc, IPC_OPENEVENT_TAG, name, desired_access,
|
| - answer);
|
| -
|
| - return code;
|
| -}
|
| -
|
| -NTSTATUS WINAPI TargetNtCreateEvent(NtCreateEventFunction orig_CreateEvent,
|
| - PHANDLE event_handle,
|
| - ACCESS_MASK desired_access,
|
| - POBJECT_ATTRIBUTES object_attributes,
|
| - EVENT_TYPE event_type,
|
| - BOOLEAN initial_state) {
|
| - NTSTATUS status = orig_CreateEvent(event_handle, desired_access,
|
| - object_attributes, event_type,
|
| - initial_state);
|
| - if (status != STATUS_ACCESS_DENIED || !object_attributes)
|
| - return status;
|
| -
|
| - // We don't trust that the IPC can work this early.
|
| - if (!SandboxFactory::GetTargetServices()->GetState()->InitCalled())
|
| - return status;
|
| -
|
| - do {
|
| - if (!ValidParameter(event_handle, sizeof(HANDLE), WRITE))
|
| - break;
|
| -
|
| - void* memory = GetGlobalIPCMemory();
|
| - if (memory == NULL)
|
| - break;
|
| -
|
| - OBJECT_ATTRIBUTES object_attribs_copy = *object_attributes;
|
| - // The RootDirectory points to BaseNamedObjects. We can ignore it.
|
| - object_attribs_copy.RootDirectory = NULL;
|
| -
|
| - wchar_t* name = NULL;
|
| - uint32_t attributes = 0;
|
| - NTSTATUS ret = AllocAndCopyName(&object_attribs_copy, &name, &attributes,
|
| - NULL);
|
| - if (!NT_SUCCESS(ret) || name == NULL)
|
| - break;
|
| -
|
| - CrossCallReturn answer = {0};
|
| - answer.nt_status = status;
|
| - ResultCode code = ProxyCreateEvent(name, initial_state, event_type, memory,
|
| - &answer);
|
| - operator delete(name, NT_ALLOC);
|
| -
|
| - if (code != SBOX_ALL_OK) {
|
| - status = answer.nt_status;
|
| - break;
|
| - }
|
| - __try {
|
| - *event_handle = answer.handle;
|
| - status = STATUS_SUCCESS;
|
| - } __except(EXCEPTION_EXECUTE_HANDLER) {
|
| - break;
|
| - }
|
| - } while (false);
|
| -
|
| - return status;
|
| -}
|
| -
|
| -NTSTATUS WINAPI TargetNtOpenEvent(NtOpenEventFunction orig_OpenEvent,
|
| - PHANDLE event_handle,
|
| - ACCESS_MASK desired_access,
|
| - POBJECT_ATTRIBUTES object_attributes) {
|
| - NTSTATUS status = orig_OpenEvent(event_handle, desired_access,
|
| - object_attributes);
|
| - if (status != STATUS_ACCESS_DENIED || !object_attributes)
|
| - return status;
|
| -
|
| - // We don't trust that the IPC can work this early.
|
| - if (!SandboxFactory::GetTargetServices()->GetState()->InitCalled())
|
| - return status;
|
| -
|
| - do {
|
| - if (!ValidParameter(event_handle, sizeof(HANDLE), WRITE))
|
| - break;
|
| -
|
| - void* memory = GetGlobalIPCMemory();
|
| - if (memory == NULL)
|
| - break;
|
| -
|
| - OBJECT_ATTRIBUTES object_attribs_copy = *object_attributes;
|
| - // The RootDirectory points to BaseNamedObjects. We can ignore it.
|
| - object_attribs_copy.RootDirectory = NULL;
|
| -
|
| - wchar_t* name = NULL;
|
| - uint32_t attributes = 0;
|
| - NTSTATUS ret = AllocAndCopyName(&object_attribs_copy, &name, &attributes,
|
| - NULL);
|
| - if (!NT_SUCCESS(ret) || name == NULL)
|
| - break;
|
| -
|
| - CrossCallReturn answer = {0};
|
| - answer.nt_status = status;
|
| - ResultCode code = ProxyOpenEvent(name, desired_access, memory, &answer);
|
| - operator delete(name, NT_ALLOC);
|
| -
|
| - if (code != SBOX_ALL_OK) {
|
| - status = answer.nt_status;
|
| - break;
|
| - }
|
| - __try {
|
| - *event_handle = answer.handle;
|
| - status = STATUS_SUCCESS;
|
| - } __except(EXCEPTION_EXECUTE_HANDLER) {
|
| - break;
|
| - }
|
| - } while (false);
|
| -
|
| - return status;
|
| -}
|
| -
|
| -} // namespace sandbox
|
|
|