| Index: sandbox/src/sync_policy.cc
|
| diff --git a/sandbox/src/sync_policy.cc b/sandbox/src/sync_policy.cc
|
| deleted file mode 100644
|
| index 364cf7370ab3528cb95e69d728bf5386b607e149..0000000000000000000000000000000000000000
|
| --- a/sandbox/src/sync_policy.cc
|
| +++ /dev/null
|
| @@ -1,114 +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 <string>
|
| -
|
| -#include "sandbox/src/sync_policy.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "sandbox/src/ipc_tags.h"
|
| -#include "sandbox/src/policy_engine_opcodes.h"
|
| -#include "sandbox/src/policy_params.h"
|
| -#include "sandbox/src/sandbox_types.h"
|
| -#include "sandbox/src/sandbox_utils.h"
|
| -
|
| -namespace sandbox {
|
| -
|
| -bool SyncPolicy::GenerateRules(const wchar_t* name,
|
| - TargetPolicy::Semantics semantics,
|
| - LowLevelPolicy* policy) {
|
| - std::wstring mod_name(name);
|
| - if (mod_name.empty()) {
|
| - return false;
|
| - }
|
| -
|
| - if (TargetPolicy::EVENTS_ALLOW_ANY != semantics &&
|
| - TargetPolicy::EVENTS_ALLOW_READONLY != semantics) {
|
| - // Other flags are not valid for sync policy yet.
|
| - NOTREACHED();
|
| - return false;
|
| - }
|
| -
|
| - // Add the open rule.
|
| - EvalResult result = ASK_BROKER;
|
| - PolicyRule open(result);
|
| -
|
| - if (!open.AddStringMatch(IF, OpenEventParams::NAME, name, CASE_INSENSITIVE))
|
| - return false;
|
| -
|
| - if (TargetPolicy::EVENTS_ALLOW_READONLY == semantics) {
|
| - // We consider all flags that are not known to be readonly as potentially
|
| - // used for write.
|
| - DWORD allowed_flags = SYNCHRONIZE | GENERIC_READ | READ_CONTROL;
|
| - DWORD restricted_flags = ~allowed_flags;
|
| - open.AddNumberMatch(IF_NOT, OpenEventParams::ACCESS, restricted_flags, AND);
|
| - }
|
| -
|
| - if (!policy->AddRule(IPC_OPENEVENT_TAG, &open))
|
| - return false;
|
| -
|
| - // If it's not a read only, add the create rule.
|
| - if (TargetPolicy::EVENTS_ALLOW_READONLY != semantics) {
|
| - PolicyRule create(result);
|
| - if (!create.AddStringMatch(IF, NameBased::NAME, name, CASE_INSENSITIVE))
|
| - return false;
|
| -
|
| - if (!policy->AddRule(IPC_CREATEEVENT_TAG, &create))
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -DWORD SyncPolicy::CreateEventAction(EvalResult eval_result,
|
| - const ClientInfo& client_info,
|
| - const std::wstring &event_name,
|
| - uint32 manual_reset,
|
| - uint32 initial_state,
|
| - HANDLE *handle) {
|
| - // The only action supported is ASK_BROKER which means create the requested
|
| - // file as specified.
|
| - if (ASK_BROKER != eval_result)
|
| - return false;
|
| -
|
| - HANDLE local_handle = ::CreateEvent(NULL, manual_reset, initial_state,
|
| - event_name.c_str());
|
| - if (NULL == local_handle)
|
| - return ::GetLastError();
|
| -
|
| - if (!::DuplicateHandle(::GetCurrentProcess(), local_handle,
|
| - client_info.process, handle, 0, FALSE,
|
| - DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS)) {
|
| - ::CloseHandle(local_handle);
|
| - return ERROR_ACCESS_DENIED;
|
| - }
|
| - return ERROR_SUCCESS;
|
| -}
|
| -
|
| -DWORD SyncPolicy::OpenEventAction(EvalResult eval_result,
|
| - const ClientInfo& client_info,
|
| - const std::wstring &event_name,
|
| - uint32 desired_access,
|
| - uint32 inherit_handle,
|
| - HANDLE *handle) {
|
| - // The only action supported is ASK_BROKER which means create the requested
|
| - // file as specified.
|
| - if (ASK_BROKER != eval_result)
|
| - return false;
|
| -
|
| - HANDLE local_handle = ::OpenEvent(desired_access, FALSE,
|
| - event_name.c_str());
|
| - if (NULL == local_handle)
|
| - return ::GetLastError();
|
| -
|
| - if (!::DuplicateHandle(::GetCurrentProcess(), local_handle,
|
| - client_info.process, handle, 0, inherit_handle,
|
| - DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS)) {
|
| - ::CloseHandle(local_handle);
|
| - return ERROR_ACCESS_DENIED;
|
| - }
|
| - return ERROR_SUCCESS;
|
| -}
|
| -
|
| -} // namespace sandbox
|
|
|