diff options
author | Balazs Engedy <engedy@chromium.org> | 2015-09-09 14:38:16 +0200 |
---|---|---|
committer | Balazs Engedy <engedy@chromium.org> | 2015-09-09 12:39:48 +0000 |
commit | 5bd897d39d2a36399944f4d3c87f6a62455db2f7 (patch) | |
tree | 669569b7031ceb8a9e0fd36ef6e0e4ddf747a163 /sandbox | |
parent | 2d2db5f4507e613a181df03dae66f7ae28f24f49 (diff) | |
download | chromium_src-5bd897d39d2a36399944f4d3c87f6a62455db2f7.zip chromium_src-5bd897d39d2a36399944f4d3c87f6a62455db2f7.tar.gz chromium_src-5bd897d39d2a36399944f4d3c87f6a62455db2f7.tar.bz2 |
Revert "Add sbox tests related to warming up of locales."
Speculative revert of https://codereview.chromium.org/1324523008.
After that CL, multiple XP bots started failing in strange ways on content_browsertests, sync_integration_tests, and telemetry_tests.
BUG=464430
TBR=liamjm@chromium.org, jochen@chromium.org, isherman@chromium.org, wfh@chromium.org
Review URL: https://codereview.chromium.org/1328353002 .
Cr-Commit-Position: refs/heads/master@{#347914}
Diffstat (limited to 'sandbox')
-rw-r--r-- | sandbox/win/BUILD.gn | 1 | ||||
-rw-r--r-- | sandbox/win/sandbox_win.gypi | 1 | ||||
-rw-r--r-- | sandbox/win/src/lpc_policy_test.cc | 119 | ||||
-rw-r--r-- | sandbox/win/src/sandbox_policy.h | 2 | ||||
-rw-r--r-- | sandbox/win/src/sandbox_types.h | 1 | ||||
-rw-r--r-- | sandbox/win/src/target_services.cc | 18 |
6 files changed, 1 insertions, 141 deletions
diff --git a/sandbox/win/BUILD.gn b/sandbox/win/BUILD.gn index 68f9ae5..b830534 100644 --- a/sandbox/win/BUILD.gn +++ b/sandbox/win/BUILD.gn @@ -196,7 +196,6 @@ test("sbox_integration_tests") { "src/handle_policy_test.cc", "src/integrity_level_test.cc", "src/ipc_ping_test.cc", - "src/lpc_policy_test.cc", "src/named_pipe_policy_test.cc", "src/policy_target_test.cc", "src/process_mitigations_test.cc", diff --git a/sandbox/win/sandbox_win.gypi b/sandbox/win/sandbox_win.gypi index 91e058a..aeb8f03 100644 --- a/sandbox/win/sandbox_win.gypi +++ b/sandbox/win/sandbox_win.gypi @@ -225,7 +225,6 @@ 'src/handle_closer_test.cc', 'src/integrity_level_test.cc', 'src/ipc_ping_test.cc', - 'src/lpc_policy_test.cc', 'src/named_pipe_policy_test.cc', 'src/policy_target_test.cc', 'src/process_mitigations_test.cc', diff --git a/sandbox/win/src/lpc_policy_test.cc b/sandbox/win/src/lpc_policy_test.cc deleted file mode 100644 index a39d67d..0000000 --- a/sandbox/win/src/lpc_policy_test.cc +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (c) 2011 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. - -// These tests have been added to specifically tests issues arising from (A)LPC -// lock down. - -#include <algorithm> -#include <cctype> - -#include <windows.h> -#include <winioctl.h> - -#include "sandbox/win/src/sandbox.h" -#include "sandbox/win/src/sandbox_factory.h" -#include "sandbox/win/src/sandbox_policy.h" -#include "sandbox/win/tests/common/controller.h" -#include "sandbox/win/tests/common/test_utils.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace sandbox { - -// Converts LCID to std::wstring for passing to sbox tests. -std::wstring LcidToWString(LCID lcid) { - wchar_t buff[10] = {0}; - int res = swprintf_s(buff, sizeof(buff)/sizeof(buff[0]), L"%08x", lcid); - if (-1 != res) { - return std::wstring(buff); - } - return std::wstring(); -} - -// Converts LANGID to std::wstring for passing to sbox tests. -std::wstring LangidToWString(LANGID langid) { - wchar_t buff[10] = {0}; - int res = swprintf_s(buff, sizeof(buff)/sizeof(buff[0]), L"%04x", langid); - if (-1 != res) { - return std::wstring(buff); - } - return std::wstring(); -} - -SBOX_TESTS_COMMAND int Lpc_GetUserDefaultLangID(int argc, wchar_t **argv) { - if (argc != 1) - return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; - std::wstring expected_langid_string(argv[0]); - - // This will cause an exception if not warmed up suitably. - LANGID langid = ::GetUserDefaultLangID(); - - std::wstring langid_string = LangidToWString(langid); - if (0 == wcsncmp(langid_string.c_str(), expected_langid_string.c_str(), 4)) { - return SBOX_TEST_SUCCEEDED; - } - return SBOX_TEST_FAILED; -} - -TEST(LpcPolicyTest, GetUserDefaultLangID) { - LANGID langid = ::GetUserDefaultLangID(); - std::wstring cmd = L"Lpc_GetUserDefaultLangID " + LangidToWString(langid); - TestRunner runner; - EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(cmd.c_str())); -} - -SBOX_TESTS_COMMAND int Lpc_GetUserDefaultLCID(int argc, wchar_t **argv) { - if (argc != 1) - return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; - std::wstring expected_lcid_string(argv[0]); - - // This will cause an exception if not warmed up suitably. - LCID lcid = ::GetUserDefaultLCID(); - - std::wstring lcid_string = LcidToWString(lcid); - if (0 == wcsncmp(lcid_string.c_str(), expected_lcid_string.c_str(), 8)) { - return SBOX_TEST_SUCCEEDED; - } - return SBOX_TEST_FAILED; -} - -TEST(LpcPolicyTest, GetUserDefaultLCID) { - LCID lcid = ::GetUserDefaultLCID(); - std::wstring cmd = L"Lpc_GetUserDefaultLCID " + LcidToWString(lcid); - TestRunner runner; - EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(cmd.c_str())); -} - -SBOX_TESTS_COMMAND int Lpc_GetUserDefaultLocaleName(int argc, wchar_t **argv) { - if (argc != 1) - return SBOX_TEST_FAILED_TO_EXECUTE_COMMAND; - std::wstring expected_locale_name(argv[0]); - - wchar_t locale_name[LOCALE_NAME_MAX_LENGTH] = { 0 }; - // This will cause an exception if not warmed up suitably. - int ret = ::GetUserDefaultLocaleName(locale_name, LOCALE_NAME_MAX_LENGTH); - if (!ret) { - return SBOX_TEST_FAILED; - } - if (!wcsnlen(locale_name, LOCALE_NAME_MAX_LENGTH)) { - return SBOX_TEST_FAILED; - } - if (0 == wcsncmp(locale_name, - expected_locale_name.c_str(), - LOCALE_NAME_MAX_LENGTH)) { - return SBOX_TEST_SUCCEEDED; - } - return SBOX_TEST_FAILED; -} - -TEST(LpcPolicyTest, GetUserDefaultLocaleName) { - wchar_t locale_name[LOCALE_NAME_MAX_LENGTH] = { 0 }; - int ret = ::GetUserDefaultLocaleName(locale_name, LOCALE_NAME_MAX_LENGTH); - EXPECT_NE(ret, 0); - std::wstring cmd = L"Lpc_GetUserDefaultLocaleName " + \ - std::wstring(locale_name); - TestRunner runner; - EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(cmd.c_str())); -} - -} // namespace sandbox diff --git a/sandbox/win/src/sandbox_policy.h b/sandbox/win/src/sandbox_policy.h index 0c3e847..c1af857 100644 --- a/sandbox/win/src/sandbox_policy.h +++ b/sandbox/win/src/sandbox_policy.h @@ -80,7 +80,7 @@ class TargetPolicy { // not compatible with AppContainer, see SetAppContainer. // lockdown: the security level for the token that comes into force after the // process calls TargetServices::LowerToken() or the process calls - // RevertToSelf(). See the explanation of each level in the TokenLevel + // ReverToSelf(). See the explanation of each level in the TokenLevel // definition. // Return value: SBOX_ALL_OK if the setting succeeds and false otherwise. // Returns false if the lockdown value is more permissive than the initial diff --git a/sandbox/win/src/sandbox_types.h b/sandbox/win/src/sandbox_types.h index f315b47..3e531be 100644 --- a/sandbox/win/src/sandbox_types.h +++ b/sandbox/win/src/sandbox_types.h @@ -61,7 +61,6 @@ enum TerminationCodes { SBOX_FATAL_CLOSEHANDLES = 7010, // Failed to close pending handles. SBOX_FATAL_MITIGATION = 7011, // Could not set the mitigation policy. SBOX_FATAL_MEMORY_EXCEEDED = 7012, // Exceeded the job memory limit. - SBOX_FATAL_WARMUP = 7013, // Failed to warmup. SBOX_FATAL_LAST }; diff --git a/sandbox/win/src/target_services.cc b/sandbox/win/src/target_services.cc index fd16b9e..116f0c9 100644 --- a/sandbox/win/src/target_services.cc +++ b/sandbox/win/src/target_services.cc @@ -59,22 +59,6 @@ bool CloseOpenHandles(bool* is_csrss_connected) { return true; } -// Warm up language subsystems before the sandbox is turned on. -// Tested on Win8.1 x64: -// This needs to happen after RevertToSelf() is called, because (at least) in -// the case of GetUserDefaultLCID() it checks the TEB to see if the process is -// impersonating (TEB!IsImpersonating). If it is, the cached locale information -// is not used, nor is it set. Therefore, calls after RevertToSelf() will not -// have warmed-up values to use. -bool WarmupWindowsLocales() { - // NOTE(liamjm): When last checked (Win 8.1 x64) it wasn't necessary to - // warmup all of these functions, but let's not assume that. - ::GetUserDefaultLangID(); - ::GetUserDefaultLCID(); - wchar_t localeName[LOCALE_NAME_MAX_LENGTH] = { 0 }; - return (0 != ::GetUserDefaultLocaleName( - localeName, LOCALE_NAME_MAX_LENGTH * sizeof(wchar_t))); -} // Used as storage for g_target_services, because other allocation facilities // are not available early. We can't use a regular function static because on @@ -113,8 +97,6 @@ void TargetServicesBase::LowerToken() { ::TerminateProcess(::GetCurrentProcess(), SBOX_FATAL_FLUSHANDLES); if (ERROR_SUCCESS != ::RegDisablePredefinedCache()) ::TerminateProcess(::GetCurrentProcess(), SBOX_FATAL_CACHEDISABLE); - if (!WarmupWindowsLocales()) - ::TerminateProcess(::GetCurrentProcess(), SBOX_FATAL_WARMUP); bool is_csrss_connected = true; if (!CloseOpenHandles(&is_csrss_connected)) ::TerminateProcess(::GetCurrentProcess(), SBOX_FATAL_CLOSEHANDLES); |