Re: [PATCH -next] selftests/landlock: Fix selftest ptrace_test run fail

From: Mickaël Salaün
Date: Wed Nov 30 2022 - 14:32:54 EST


I checked and the Landlock ptrace test failed because Yama is enabled, which is expected. You can check that with /proc/sys/kernel/yama/ptrace_scope

Jeff Xu sent a patch to fix this case but it is not ready yet: https://lore.kernel.org/r/20220628222941.2642917-1-jeffxu@xxxxxxxxxx

Could you please send a new patch Jeff, and add Limin in Cc?


On 29/11/2022 12:26, limin wrote:
cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.1.0-next-20221116
root=UUID=a65b3a79-dc02-4728-8a0c-5cf24f4ae08b ro
systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all


config

#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.1.0-rc6 Kernel Configuration
#

[...]

CONFIG_SECURITY_YAMA=y

[...]

CONFIG_LSM="landlock,lockdown,yama,integrity,apparmor"
[...]

On 2022/11/29 19:03, Mickaël Salaün wrote:
I tested with next-20221116 and all tests are OK. Could you share your
kernel configuration with a link? What is the content of /proc/cmdline?

On 29/11/2022 02:42, limin wrote:
I run test on Linux ubuntu2204 6.1.0-next-20221116

I did't use yama.

you can reproduce by this step:

cd kernel_src

cd tools/testing/selftests/landlock/
make
./ptrace_test




On 2022/11/29 3:44, Mickaël Salaün wrote:
This patch changes the test semantic and then cannot work on my test
environment. On which kernel did you run test? Do you use Yama or
something similar?

On 28/11/2022 03:04, limin wrote:
Tests PTRACE_ATTACH and PTRACE_MODE_READ on the parent,
trace parent return -1 when child== 0
How to reproduce warning:
$ make -C tools/testing/selftests TARGETS=landlock run_tests

Signed-off-by: limin <limin100@xxxxxxxxxx>
---
   tools/testing/selftests/landlock/ptrace_test.c | 5 ++---
   1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/landlock/ptrace_test.c
b/tools/testing/selftests/landlock/ptrace_test.c
index c28ef98ff3ac..88c4dc63eea0 100644
--- a/tools/testing/selftests/landlock/ptrace_test.c
+++ b/tools/testing/selftests/landlock/ptrace_test.c
@@ -267,12 +267,11 @@ TEST_F(hierarchy, trace)
           /* Tests PTRACE_ATTACH and PTRACE_MODE_READ on the
parent. */
           err_proc_read = test_ptrace_read(parent);
           ret = ptrace(PTRACE_ATTACH, parent, NULL, 0);
+        EXPECT_EQ(-1, ret);
+        EXPECT_EQ(EPERM, errno);
           if (variant->domain_child) {
-            EXPECT_EQ(-1, ret);
-            EXPECT_EQ(EPERM, errno);
               EXPECT_EQ(EACCES, err_proc_read);
           } else {
-            EXPECT_EQ(0, ret);
               EXPECT_EQ(0, err_proc_read);
           }
           if (ret == 0) {