[LTP] [PATCH 2/2] syscalls/init_module02: Rewrite lockdown skips

Martin Doucha mdoucha@suse.cz
Tue Sep 21 13:33:17 CEST 2021


Different kernels may return different module signature validation errors
for null-param and invalid_param test cases. Skip both test cases when
the kernel is in lockdown.

Signed-off-by: Martin Doucha <mdoucha@suse.cz>
---
 .../syscalls/init_module/init_module02.c      | 33 +++++++++----------
 1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/testcases/kernel/syscalls/init_module/init_module02.c b/testcases/kernel/syscalls/init_module/init_module02.c
index dac99a4da..ad6569a06 100644
--- a/testcases/kernel/syscalls/init_module/init_module02.c
+++ b/testcases/kernel/syscalls/init_module/init_module02.c
@@ -34,16 +34,16 @@ static struct tcase {
 	unsigned long *size;
 	const char *param;
 	int cap;
+	int skip_in_lockdown;
 	int exp_errno;
-	int lockdown_errno;
 } tcases[] = {
-	{"NULL-buffer", &null_buf, &size, "", 0, EFAULT, EFAULT},
-	{"faulty-buffer", &faulty_buf, &size, "", 0, EFAULT, EFAULT},
-	{"null-param", &buf, &size, NULL, 0, EFAULT, EPERM},
-	{"zero-size", &buf, &zero_size, "", 0, ENOEXEC, ENOEXEC},
-	{"invalid_param", &buf, &size, "status=invalid", 0, EINVAL, EPERM},
-	{"no-perm", &buf, &size, "", 1, EPERM, EPERM},
-	{"module-exists", &buf, &size, "", 0, EEXIST, EPERM},
+	{"NULL-buffer", &null_buf, &size, "", 0, 0, EFAULT},
+	{"faulty-buffer", &faulty_buf, &size, "", 0, 0, EFAULT},
+	{"null-param", &buf, &size, NULL, 0, 1, EFAULT},
+	{"zero-size", &buf, &zero_size, "", 0, 0, ENOEXEC},
+	{"invalid_param", &buf, &size, "status=invalid", 0, 1, EINVAL},
+	{"no-perm", &buf, &size, "", 1, 0, EPERM},
+	{"module-exists", &buf, &size, "", 0, 1, EEXIST},
 };
 
 static void setup(void)
@@ -67,23 +67,20 @@ static void run(unsigned int n)
 {
 	struct tcase *tc = &tcases[n];
 
+	if (tc->skip_in_lockdown && kernel_lockdown) {
+		tst_res(TCONF, "Kernel is locked down, skipping %s", tc->name);
+		return;
+	}
+
 	if (tc->cap)
 		tst_cap_action(&cap_drop);
 
 	/* Insert module twice */
-	if (tc->exp_errno == EEXIST) {
-		if (kernel_lockdown) {
-			tst_res(TCONF, "Kernel is locked down, skipping %s",
-				tc->name);
-			return;
-		}
-
+	if (tc->exp_errno == EEXIST)
 		tst_module_load(MODULE_NAME, NULL);
-	}
 
 	TST_EXP_FAIL(init_module(*tc->buf, *tc->size, tc->param),
-		     kernel_lockdown ? tc->lockdown_errno : tc->exp_errno,
-		     "TestName: %s", tc->name);
+		tc->exp_errno, "TestName: %s", tc->name);
 
 	if (tc->exp_errno == EEXIST)
 		tst_module_unload(MODULE_NAME);
-- 
2.33.0



More information about the ltp mailing list