diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-08 05:01:44 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-08 05:01:44 +0000 |
commit | 10c15837c11326c99371b7bf742d15c6a2281ef6 (patch) | |
tree | 364f604940b64bee1d461638efb20682ff8724ae /sandbox | |
parent | 4d63b875854ba2b555aa0494cedbfa97567732d9 (diff) | |
download | chromium_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.cc | 20 |
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()); |