Chromium Code Reviews| Index: sandbox/src/handle_interception.cc |
| =================================================================== |
| --- sandbox/src/handle_interception.cc (revision 0) |
| +++ sandbox/src/handle_interception.cc (revision 0) |
| @@ -0,0 +1,49 @@ |
| +// Copyright (c) 2012 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/src/handle_interception.h" |
| + |
| +#include "base/win/scoped_handle.h" |
|
rvargas (doing something else)
2012/03/27 00:35:33
remove
jschuh
2012/03/27 01:36:19
Done.
|
| +#include "sandbox/src/crosscall_client.h" |
| +#include "sandbox/src/ipc_tags.h" |
| +#include "sandbox/src/sandbox_factory.h" |
| +#include "sandbox/src/sandbox_nt_util.h" |
| +#include "sandbox/src/sharedmem_ipc_client.h" |
| +#include "sandbox/src/target_services.h" |
| + |
| +namespace sandbox { |
| + |
| +ResultCode DuplicateHandleProxy(HANDLE source_handle, |
| + DWORD target_process_id, |
| + HANDLE* target_handle, |
| + DWORD desired_access, |
| + BOOL inherit_handle, |
| + DWORD options) { |
| + if (!ValidParameter(target_handle, sizeof(HANDLE), WRITE)) |
|
rvargas (doing something else)
2012/03/27 00:35:33
I wouldn't worry about this... maybe just target_h
jschuh
2012/03/27 01:36:19
Done.
|
| + return SBOX_ERROR_BAD_PARAMS; |
| + |
| + void* memory = GetGlobalIPCMemory(); |
| + if (NULL == memory) |
| + return SBOX_ERROR_NO_SPACE; |
| + |
| + SharedMemIPCClient ipc(memory); |
| + CrossCallReturn answer = {0}; |
| + ResultCode code = CrossCall(ipc, IPC_DUPLICATEHANDLEPROXY_TAG, |
| + source_handle, target_process_id, |
| + desired_access, inherit_handle, options, |
| + &answer); |
| + if (SBOX_ALL_OK != code) |
| + return code; |
| + |
| + if (answer.win32_result) { |
| + ::SetLastError(answer.nt_status); |
| + return SBOX_ERROR_GENERIC; |
| + } |
| + |
| + *target_handle = answer.handle; |
| + return SBOX_ALL_OK; |
| +} |
| + |
| +} // namespace sandbox |
| + |
| Property changes on: sandbox\src\handle_interception.cc |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |