瀏覽代碼

selftests: skip seccomp get_metadata test if not real root

[ Upstream commit 3aa415dd2128e478ea3225b59308766de0e94d6b ]

The get_metadata() test requires real root, so let's skip it if we're not
real root.

Note that I used XFAIL here because that's what the test does later if
CONFIG_CHEKCKPOINT_RESTORE happens to not be enabled. After looking at the
code, there doesn't seem to be a nice way to skip tests defined as TEST(),
since there's no return code (I tried exit(KSFT_SKIP), but that didn't work
either...). So let's do it this way to be consistent, and easier to fix
when someone comes along and fixes it.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Shuah Khan <shuah@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Tycho Andersen 6 年之前
父節點
當前提交
c63cc8d148
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      tools/testing/selftests/seccomp/seccomp_bpf.c

+ 6 - 0
tools/testing/selftests/seccomp/seccomp_bpf.c

@@ -2920,6 +2920,12 @@ TEST(get_metadata)
 	struct seccomp_metadata md;
 	struct seccomp_metadata md;
 	long ret;
 	long ret;
 
 
+	/* Only real root can get metadata. */
+	if (geteuid()) {
+		XFAIL(return, "get_metadata requires real root");
+		return;
+	}
+
 	ASSERT_EQ(0, pipe(pipefd));
 	ASSERT_EQ(0, pipe(pipefd));
 
 
 	pid = fork();
 	pid = fork();