summaryrefslogtreecommitdiffstats
path: root/sandbox
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-08 05:01:44 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-08 05:01:44 +0000
commit10c15837c11326c99371b7bf742d15c6a2281ef6 (patch)
tree364f604940b64bee1d461638efb20682ff8724ae /sandbox
parent4d63b875854ba2b555aa0494cedbfa97567732d9 (diff)
downloadchromium_src-10c15837c11326c99371b7bf742d15c6a2281ef6.zip
chromium_src-10c15837c11326c99371b7bf742d15c6a2281ef6.tar.gz
chromium_src-10c15837c11326c99371b7bf742d15c6a2281ef6.tar.bz2
Disable two yama tests on 3.2 kernels with 32bit userland and 64bit kernel.
Disabling yama restrictions is broken there. BUG=391916 R=jorgelo@chromium.org Review URL: https://codereview.chromium.org/371113003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281666 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sandbox')
-rw-r--r--sandbox/linux/services/yama_unittests.cc20
1 files changed, 19 insertions, 1 deletions
diff --git a/sandbox/linux/services/yama_unittests.cc b/sandbox/linux/services/yama_unittests.cc
index 17ef4b40..6666cbc 100644
--- a/sandbox/linux/services/yama_unittests.cc
+++ b/sandbox/linux/services/yama_unittests.cc
@@ -21,6 +21,21 @@ namespace sandbox {
namespace {
+bool HasLinux32Bug() {
+#if defined(__i386__)
+ // On 3.2 kernels, Yama doesn't work for 32-bit binaries on 64-bit kernels.
+ // This is fixed in 3.4.
+ bool is_kernel_64bit =
+ base::SysInfo::OperatingSystemArchitecture() == "x86_64";
+ bool is_linux = base::SysInfo::OperatingSystemName() == "Linux";
+ bool is_3_dot_2 = StartsWithASCII(
+ base::SysInfo::OperatingSystemVersion(), "3.2", /*case_sensitive=*/false);
+ if (is_kernel_64bit && is_linux && is_3_dot_2)
+ return true;
+#endif // defined(__i386__)
+ return false;
+}
+
bool CanPtrace(pid_t pid) {
int ret;
ret = ptrace(PTRACE_ATTACH, pid, NULL, NULL);
@@ -112,6 +127,9 @@ void SetYamaRestrictions(bool enable_restriction) {
}
TEST(Yama, RestrictPtraceWorks) {
+ if (HasLinux32Bug())
+ return;
+
ScopedProcess process1(base::Bind(&SetYamaRestrictions, true));
ASSERT_TRUE(process1.WaitForClosureToRun());
@@ -134,7 +152,7 @@ TEST(Yama, RestrictPtraceWorks) {
void DoNothing() {}
SANDBOX_TEST(Yama, RestrictPtraceIsDefault) {
- if (!Yama::IsPresent())
+ if (!Yama::IsPresent() || HasLinux32Bug())
return;
CHECK(Yama::DisableYamaRestrictions());