OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "sandbox/win/src/top_level_dispatcher.h" | 5 #include "sandbox/win/src/top_level_dispatcher.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "sandbox/win/src/crosscall_server.h" | 12 #include "sandbox/win/src/crosscall_server.h" |
13 #include "sandbox/win/src/filesystem_dispatcher.h" | 13 #include "sandbox/win/src/filesystem_dispatcher.h" |
14 #include "sandbox/win/src/handle_dispatcher.h" | 14 #include "sandbox/win/src/handle_dispatcher.h" |
15 #include "sandbox/win/src/interception.h" | 15 #include "sandbox/win/src/interception.h" |
16 #include "sandbox/win/src/internal_types.h" | 16 #include "sandbox/win/src/internal_types.h" |
17 #include "sandbox/win/src/ipc_tags.h" | 17 #include "sandbox/win/src/ipc_tags.h" |
18 #include "sandbox/win/src/named_pipe_dispatcher.h" | 18 #include "sandbox/win/src/named_pipe_dispatcher.h" |
19 #include "sandbox/win/src/process_mitigations_win32k_dispatcher.h" | 19 #include "sandbox/win/src/process_mitigations_win32k_dispatcher.h" |
20 #include "sandbox/win/src/process_thread_dispatcher.h" | 20 #include "sandbox/win/src/process_thread_dispatcher.h" |
21 #include "sandbox/win/src/registry_dispatcher.h" | 21 #include "sandbox/win/src/registry_dispatcher.h" |
22 #include "sandbox/win/src/sandbox_policy_base.h" | 22 #include "sandbox/win/src/sandbox_policy.h" |
23 #include "sandbox/win/src/sync_dispatcher.h" | 23 #include "sandbox/win/src/sync_dispatcher.h" |
24 | 24 |
25 namespace sandbox { | 25 namespace sandbox { |
26 | 26 |
27 TopLevelDispatcher::TopLevelDispatcher(PolicyBase* policy) : policy_(policy) { | 27 TopLevelDispatcher::TopLevelDispatcher(TargetPolicy* policy) : policy_(policy) { |
28 // Initialize the IPC dispatcher array. | 28 // Initialize the IPC dispatcher array. |
29 memset(ipc_targets_, 0, sizeof(ipc_targets_)); | 29 memset(ipc_targets_, 0, sizeof(ipc_targets_)); |
30 Dispatcher* dispatcher; | 30 Dispatcher* dispatcher; |
31 | 31 |
32 dispatcher = new FilesystemDispatcher(policy_); | 32 dispatcher = new FilesystemDispatcher(policy_); |
33 ipc_targets_[IPC_NTCREATEFILE_TAG] = dispatcher; | 33 ipc_targets_[IPC_NTCREATEFILE_TAG] = dispatcher; |
34 ipc_targets_[IPC_NTOPENFILE_TAG] = dispatcher; | 34 ipc_targets_[IPC_NTOPENFILE_TAG] = dispatcher; |
35 ipc_targets_[IPC_NTSETINFO_RENAME_TAG] = dispatcher; | 35 ipc_targets_[IPC_NTSETINFO_RENAME_TAG] = dispatcher; |
36 ipc_targets_[IPC_NTQUERYATTRIBUTESFILE_TAG] = dispatcher; | 36 ipc_targets_[IPC_NTQUERYATTRIBUTESFILE_TAG] = dispatcher; |
37 ipc_targets_[IPC_NTQUERYFULLATTRIBUTESFILE_TAG] = dispatcher; | 37 ipc_targets_[IPC_NTQUERYFULLATTRIBUTESFILE_TAG] = dispatcher; |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 } | 137 } |
138 | 138 |
139 Dispatcher* TopLevelDispatcher::GetDispatcher(int ipc_tag) { | 139 Dispatcher* TopLevelDispatcher::GetDispatcher(int ipc_tag) { |
140 if (ipc_tag >= IPC_LAST_TAG || ipc_tag <= IPC_UNUSED_TAG) | 140 if (ipc_tag >= IPC_LAST_TAG || ipc_tag <= IPC_UNUSED_TAG) |
141 return NULL; | 141 return NULL; |
142 | 142 |
143 return ipc_targets_[ipc_tag]; | 143 return ipc_targets_[ipc_tag]; |
144 } | 144 } |
145 | 145 |
146 } // namespace sandbox | 146 } // namespace sandbox |
OLD | NEW |