summaryrefslogtreecommitdiffstats
path: root/sandbox
diff options
context:
space:
mode:
authorBalazs Engedy <engedy@chromium.org>2015-09-09 14:38:16 +0200
committerBalazs Engedy <engedy@chromium.org>2015-09-09 12:39:48 +0000
commit5bd897d39d2a36399944f4d3c87f6a62455db2f7 (patch)
tree669569b7031ceb8a9e0fd36ef6e0e4ddf747a163 /sandbox
parent2d2db5f4507e613a181df03dae66f7ae28f24f49 (diff)
downloadchromium_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.gn1
-rw-r--r--sandbox/win/sandbox_win.gypi1
-rw-r--r--sandbox/win/src/lpc_policy_test.cc119
-rw-r--r--sandbox/win/src/sandbox_policy.h2
-rw-r--r--sandbox/win/src/sandbox_types.h1
-rw-r--r--sandbox/win/src/target_services.cc18
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);