Source code

Revision control

Copy as Markdown

Other Tools

# HG changeset patch
# User Bob Owen <bobowencode@gmail.com>
Fix EXE module check in BrokerServicesBase::SpawnTarget.
This is from chromium commit 373106e215b0cae612a65d87eda1258ae736c131.
diff --git a/sandbox/win/src/broker_services.cc b/sandbox/win/src/broker_services.cc
--- a/sandbox/win/src/broker_services.cc
+++ b/sandbox/win/src/broker_services.cc
@@ -368,17 +369,18 @@ ResultCode BrokerServicesBase::SpawnTarg
DWORD* last_error,
PROCESS_INFORMATION* target_info) {
if (!exe_path)
return SBOX_ERROR_BAD_PARAMS;
// This code should only be called from the exe, ensure that this is always
// the case.
HMODULE exe_module = nullptr;
- CHECK(::GetModuleHandleEx(NULL, exe_path, &exe_module));
+ CHECK(::GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
+ nullptr, &exe_module));
if (CURRENT_MODULE() != exe_module)
return SBOX_ERROR_INVALID_LINK_STATE;
if (!policy)
return SBOX_ERROR_BAD_PARAMS;
// This downcast is safe as long as we control CreatePolicy().
std::unique_ptr<PolicyBase> policy_base;