diff options
-rw-r--r-- | sandbox/src/target_services.cc | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/sandbox/src/target_services.cc b/sandbox/src/target_services.cc index 32a452f..9b91a1c 100644 --- a/sandbox/src/target_services.cc +++ b/sandbox/src/target_services.cc @@ -71,12 +71,8 @@ ResultCode TargetServicesBase::Init() { // Failure here is a breach of security so the process is terminated. void TargetServicesBase::LowerToken() { - DWORD error_code = SetProcessIntegrityLevel(g_shared_delayed_integrity_level); - // Here we don't terminate the process if the error is ERROR_INVALID_HANDLE, - // this is because this error is not possible in normal circumstances, unless - // it is hooked by sftldr_wow64.dll, in which case we prefer to keep running. - // See http://crbug.com/95888. - if (ERROR_SUCCESS != error_code && ERROR_INVALID_HANDLE != error_code) + if (ERROR_SUCCESS != + SetProcessIntegrityLevel(g_shared_delayed_integrity_level)) ::TerminateProcess(::GetCurrentProcess(), SBOX_FATAL_INTEGRITY); process_state_.SetRevertedToSelf(); // If the client code as called RegOpenKey, advapi32.dll has cached some |