commit:     ea8a4b3bcf6a0a57f7cdb8e4d37ff62d099cb6a4
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 13 10:57:54 2021 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Tue Jul 13 11:20:54 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea8a4b3b

dev-util/ltrace: skip the attach-process test

On modern kernels with the Yama security module enabled the default
ptrace behaviour is that a process must have a predefined relationship
with the inferior it wants to call ``PTRACE_ATTACH`` on, with two
additional modes restricting process tracing even more; for details see
[1]. As a result, unless Yama is explicitly reset to classic ptrace
permissions the ltrace attach-process test fails due to
insufficient permissions - regardless of the sandbox, or even when the
test suite is run manually with no involvement of a Gentoo package
manager.

We could in principle modify the test in question to be compatible with
restricted-ptrace mode, however it would still fail on systems with
Yama in admin-attach and no-attach mode. Between that and requiring the
user to reconfigure Yama prior to running this test being IMHO a Bad
Idea, just don't bother with this test at all.

[1] https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.html

Closes: https://bugs.gentoo.org/729046
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 dev-util/ltrace/ltrace-0.7.3.6.1.ebuild   | 4 ++++
 dev-util/ltrace/ltrace-0.7.3_p4-r1.ebuild | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/dev-util/ltrace/ltrace-0.7.3.6.1.ebuild 
b/dev-util/ltrace/ltrace-0.7.3.6.1.ebuild
index 9fd7b01b854..9bb71a61718 100644
--- a/dev-util/ltrace/ltrace-0.7.3.6.1.ebuild
+++ b/dev-util/ltrace/ltrace-0.7.3.6.1.ebuild
@@ -71,6 +71,10 @@ src_configure() {
 }
 
 src_test() {
+       # On kernels with Yama enabled this will not run, even without sandbox,
+       # unless /proc/sys/kernel/yama/ptrace_scope == 0. Just don't bother.
+       # Note: we only delete it here in order to avoid Makefile.am patching.
+       rm -f testsuite/ltrace.minor/attach-process.exp
        # sandbox redirects vfork() to fork(): bug # 774054
        # Let's avoid sandbox entirely.
        SANDBOX_ON=0 LD_PRELOAD= emake check

diff --git a/dev-util/ltrace/ltrace-0.7.3_p4-r1.ebuild 
b/dev-util/ltrace/ltrace-0.7.3_p4-r1.ebuild
index beb325aa49c..3b6aafcb34d 100644
--- a/dev-util/ltrace/ltrace-0.7.3_p4-r1.ebuild
+++ b/dev-util/ltrace/ltrace-0.7.3_p4-r1.ebuild
@@ -70,6 +70,10 @@ src_configure() {
 }
 
 src_test() {
+       # On kernels with Yama enabled this will not run, even without sandbox,
+       # unless /proc/sys/kernel/yama/ptrace_scope == 0. Just don't bother.
+       # Note: we only delete it here in order to avoid Makefile.am patching.
+       rm -f testsuite/ltrace.minor/attach-process.exp
        # sandbox redirects vfork() to fork(): bug # 774054
        # Let's avoid sandbox entirely.
        SANDBOX_ON=0 LD_PRELOAD= emake check

Reply via email to