Chromium Code Reviews| Index: sandbox/win/src/process_mitigations.cc |
| diff --git a/sandbox/win/src/process_mitigations.cc b/sandbox/win/src/process_mitigations.cc |
| index ba191d6ba6f86113a9efee080466dd7bf827b1df..26decf77e340193d52cf0bf54a2f1df805f5361b 100644 |
| --- a/sandbox/win/src/process_mitigations.cc |
| +++ b/sandbox/win/src/process_mitigations.cc |
| @@ -38,8 +38,7 @@ bool ApplyProcessMitigationsToCurrentProcess(MitigationFlags flags) { |
| base::win::Version version = base::win::GetVersion(); |
| HMODULE module = ::GetModuleHandleA("kernel32.dll"); |
| - if (version >= base::win::VERSION_VISTA && |
| - (flags & MITIGATION_DLL_SEARCH_ORDER)) { |
| + if (flags & MITIGATION_DLL_SEARCH_ORDER) { |
| SetDefaultDllDirectoriesFunction set_default_dll_directories = |
| reinterpret_cast<SetDefaultDllDirectoriesFunction>( |
| ::GetProcAddress(module, "SetDefaultDllDirectories")); |
| @@ -54,8 +53,7 @@ bool ApplyProcessMitigationsToCurrentProcess(MitigationFlags flags) { |
| } |
| // Set the heap to terminate on corruption |
| - if (version >= base::win::VERSION_VISTA && |
| - (flags & MITIGATION_HEAP_TERMINATE)) { |
| + if (flags & MITIGATION_HEAP_TERMINATE) { |
| if (!::HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, |
| NULL, 0) && |
| ERROR_ACCESS_DENIED != ::GetLastError()) { |
| @@ -63,8 +61,7 @@ bool ApplyProcessMitigationsToCurrentProcess(MitigationFlags flags) { |
| } |
| } |
| - if (version >= base::win::VERSION_WIN7 && |
| - (flags & MITIGATION_HARDEN_TOKEN_IL_POLICY)) { |
| + if (flags & MITIGATION_HARDEN_TOKEN_IL_POLICY) { |
| DWORD error = HardenProcessIntegrityLevelPolicy(); |
| if ((error != ERROR_SUCCESS) && (error != ERROR_ACCESS_DENIED)) |
| return false; |
| @@ -73,8 +70,6 @@ bool ApplyProcessMitigationsToCurrentProcess(MitigationFlags flags) { |
| #if !defined(_WIN64) // DEP is always enabled on 64-bit. |
| if (flags & MITIGATION_DEP) { |
| DWORD dep_flags = PROCESS_DEP_ENABLE; |
| - // DEP support is quirky on XP, so don't force a failure in that case. |
| - const bool return_on_fail = version >= base::win::VERSION_VISTA; |
| if (flags & MITIGATION_DEP_NO_ATL_THUNK) |
| dep_flags |= PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION; |
| @@ -84,28 +79,7 @@ bool ApplyProcessMitigationsToCurrentProcess(MitigationFlags flags) { |
| ::GetProcAddress(module, "SetProcessDEPPolicy")); |
| if (set_process_dep_policy) { |
| if (!set_process_dep_policy(dep_flags) && |
| - ERROR_ACCESS_DENIED != ::GetLastError() && return_on_fail) { |
| - return false; |
| - } |
| - } else { |
| - // We're on XP sp2, so use the less standard approach. |
| - // For reference: http://www.uninformed.org/?v=2&a=4 |
| - static const int MEM_EXECUTE_OPTION_DISABLE = 2; |
| - static const int MEM_EXECUTE_OPTION_ATL7_THUNK_EMULATION = 4; |
| - static const int MEM_EXECUTE_OPTION_PERMANENT = 8; |
| - |
| - NtSetInformationProcessFunction set_information_process = NULL; |
| - ResolveNTFunctionPtr("NtSetInformationProcess", |
| - &set_information_process); |
| - if (!set_information_process) |
| - return false; |
| - ULONG dep = MEM_EXECUTE_OPTION_DISABLE | MEM_EXECUTE_OPTION_PERMANENT; |
| - if (!(dep_flags & PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION)) |
| - dep |= MEM_EXECUTE_OPTION_ATL7_THUNK_EMULATION; |
| - if (!SUCCEEDED(set_information_process(GetCurrentProcess(), |
| - ProcessExecuteFlags, |
| - &dep, sizeof(dep))) && |
| - ERROR_ACCESS_DENIED != ::GetLastError() && return_on_fail) { |
| + ERROR_ACCESS_DENIED != ::GetLastError()) { |
| return false; |
|
Will Harris
2016/03/17 23:05:59
I think this needs more return false for more fail
kylix_rd
2016/03/21 19:09:09
Done.
|
| } |
| } |
| @@ -229,10 +203,6 @@ void ConvertProcessMitigationsToPolicy(MitigationFlags flags, |
| #error This platform is not supported. |
| #endif |
| - // Nothing for Win XP or Vista. |
| - if (version <= base::win::VERSION_VISTA) |
| - return; |
| - |
| // DEP and SEHOP are not valid for 64-bit Windows |
| #if !defined(_WIN64) |
| if (flags & MITIGATION_DEP) { |
| @@ -312,19 +282,6 @@ void ConvertProcessMitigationsToPolicy(MitigationFlags flags, |
| MitigationFlags FilterPostStartupProcessMitigations(MitigationFlags flags) { |
| base::win::Version version = base::win::GetVersion(); |
| - // Windows XP SP2+. |
| - if (version < base::win::VERSION_VISTA) { |
| - return flags & (MITIGATION_DEP | |
| - MITIGATION_DEP_NO_ATL_THUNK); |
| - } |
| - |
| - // Windows Vista |
| - if (version < base::win::VERSION_WIN7) { |
| - return flags & (MITIGATION_BOTTOM_UP_ASLR | |
| - MITIGATION_DLL_SEARCH_ORDER | |
| - MITIGATION_HEAP_TERMINATE); |
| - } |
| - |
| // Windows 7. |
| if (version < base::win::VERSION_WIN8) { |
| return flags & (MITIGATION_BOTTOM_UP_ASLR | |