* [LTP] [PATCH] {delete, finit, init}_module0[1-3]: Handle CONFIG_MODULE_SIG_FORCE
@ 2024-12-23 4:19 Po-Hsu Lin
2024-12-27 12:46 ` Petr Vorel
0 siblings, 1 reply; 2+ messages in thread
From: Po-Hsu Lin @ 2024-12-23 4:19 UTC (permalink / raw)
To: ltp; +Cc: po-hsu.lin
The patch adds parsing for CONFIG_MODULE_SIG_FORCE kernel config,
which will make tests expect an EKEYREJECTED error like using the
'module.sig_enforce' parameter.
Patch tested on kernel with CONFIG_MODULE_SIG_FORCE=y and it's
working as expected.
Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
---
testcases/kernel/syscalls/delete_module/delete_module01.c | 4 +++-
testcases/kernel/syscalls/delete_module/delete_module03.c | 4 +++-
testcases/kernel/syscalls/finit_module/finit_module01.c | 6 ++++--
testcases/kernel/syscalls/finit_module/finit_module02.c | 6 ++++--
testcases/kernel/syscalls/init_module/init_module01.c | 6 ++++--
testcases/kernel/syscalls/init_module/init_module02.c | 6 ++++--
6 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/testcases/kernel/syscalls/delete_module/delete_module01.c b/testcases/kernel/syscalls/delete_module/delete_module01.c
index 11c4eae58..5ccbe6fd5 100644
--- a/testcases/kernel/syscalls/delete_module/delete_module01.c
+++ b/testcases/kernel/syscalls/delete_module/delete_module01.c
@@ -28,9 +28,11 @@ static int module_loaded;
static void do_delete_module(void)
{
struct tst_kcmdline_var params = TST_KCMDLINE_INIT("module.sig_enforce");
+ struct tst_kconfig_var kconfig = TST_KCONFIG_INIT("CONFIG_MODULE_SIG_FORCE");
tst_kcmdline_parse(¶ms, 1);
- if (atoi(params.value) == 1)
+ tst_kconfig_read(&kconfig, 1);
+ if (params.found || kconfig.choice == 'y')
tst_brk(TCONF, "module signature is enforced, skip test");
if (!module_loaded) {
diff --git a/testcases/kernel/syscalls/delete_module/delete_module03.c b/testcases/kernel/syscalls/delete_module/delete_module03.c
index fdf0c293d..76ccfb1e2 100644
--- a/testcases/kernel/syscalls/delete_module/delete_module03.c
+++ b/testcases/kernel/syscalls/delete_module/delete_module03.c
@@ -53,9 +53,11 @@ static void do_delete_module(void)
static void setup(void)
{
struct tst_kcmdline_var params = TST_KCMDLINE_INIT("module.sig_enforce");
+ struct tst_kconfig_var kconfig = TST_KCONFIG_INIT("CONFIG_MODULE_SIG_FORCE");
tst_kcmdline_parse(¶ms, 1);
- if (atoi(params.value) == 1)
+ tst_kconfig_read(&kconfig, 1);
+ if (params.found || kconfig.choice == 'y')
tst_brk(TCONF, "module signature is enforced, skip test");
/* Load first kernel module */
diff --git a/testcases/kernel/syscalls/finit_module/finit_module01.c b/testcases/kernel/syscalls/finit_module/finit_module01.c
index 1546d4fb7..d75e5e475 100644
--- a/testcases/kernel/syscalls/finit_module/finit_module01.c
+++ b/testcases/kernel/syscalls/finit_module/finit_module01.c
@@ -28,10 +28,12 @@ static char *mod_path;
static void setup(void)
{
struct tst_kcmdline_var params = TST_KCMDLINE_INIT("module.sig_enforce");
+ struct tst_kconfig_var kconfig = TST_KCONFIG_INIT("CONFIG_MODULE_SIG_FORCE");
tst_kcmdline_parse(¶ms, 1);
- if (params.found)
- sig_enforce = atoi(params.value);
+ tst_kconfig_read(&kconfig, 1);
+ if (params.found || kconfig.choice == 'y')
+ sig_enforce = 1;
tst_module_exists(MODULE_NAME, &mod_path);
diff --git a/testcases/kernel/syscalls/finit_module/finit_module02.c b/testcases/kernel/syscalls/finit_module/finit_module02.c
index 2fe70af4d..dc81ae727 100644
--- a/testcases/kernel/syscalls/finit_module/finit_module02.c
+++ b/testcases/kernel/syscalls/finit_module/finit_module02.c
@@ -78,10 +78,12 @@ static void setup(void)
{
unsigned long int i;
struct tst_kcmdline_var params = TST_KCMDLINE_INIT("module.sig_enforce");
+ struct tst_kconfig_var kconfig = TST_KCONFIG_INIT("CONFIG_MODULE_SIG_FORCE");
tst_kcmdline_parse(¶ms, 1);
- if (params.found)
- sig_enforce = atoi(params.value);
+ tst_kconfig_read(&kconfig, 1);
+ if (params.found || kconfig.choice == 'y')
+ sig_enforce = 1;
tst_module_exists(MODULE_NAME, &mod_path);
diff --git a/testcases/kernel/syscalls/init_module/init_module01.c b/testcases/kernel/syscalls/init_module/init_module01.c
index 27a1fc627..d7ed08b14 100644
--- a/testcases/kernel/syscalls/init_module/init_module01.c
+++ b/testcases/kernel/syscalls/init_module/init_module01.c
@@ -29,10 +29,12 @@ static void setup(void)
{
int fd;
struct tst_kcmdline_var params = TST_KCMDLINE_INIT("module.sig_enforce");
+ struct tst_kconfig_var kconfig = TST_KCONFIG_INIT("CONFIG_MODULE_SIG_FORCE");
tst_kcmdline_parse(¶ms, 1);
- if (params.found)
- sig_enforce = atoi(params.value);
+ tst_kconfig_read(&kconfig, 1);
+ if (params.found || kconfig.choice == 'y')
+ sig_enforce = 1;
tst_module_exists(MODULE_NAME, NULL);
diff --git a/testcases/kernel/syscalls/init_module/init_module02.c b/testcases/kernel/syscalls/init_module/init_module02.c
index 68d9ff16b..3eb99574d 100644
--- a/testcases/kernel/syscalls/init_module/init_module02.c
+++ b/testcases/kernel/syscalls/init_module/init_module02.c
@@ -54,10 +54,12 @@ static void setup(void)
struct stat sb;
int fd;
struct tst_kcmdline_var params = TST_KCMDLINE_INIT("module.sig_enforce");
+ struct tst_kconfig_var kconfig = TST_KCONFIG_INIT("CONFIG_MODULE_SIG_FORCE");
tst_kcmdline_parse(¶ms, 1);
- if (params.found)
- sig_enforce = atoi(params.value);
+ tst_kconfig_read(&kconfig, 1);
+ if (params.found || kconfig.choice == 'y')
+ sig_enforce = 1;
tst_module_exists(MODULE_NAME, NULL);
--
2.25.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [LTP] [PATCH] {delete, finit, init}_module0[1-3]: Handle CONFIG_MODULE_SIG_FORCE
2024-12-23 4:19 [LTP] [PATCH] {delete, finit, init}_module0[1-3]: Handle CONFIG_MODULE_SIG_FORCE Po-Hsu Lin
@ 2024-12-27 12:46 ` Petr Vorel
0 siblings, 0 replies; 2+ messages in thread
From: Petr Vorel @ 2024-12-27 12:46 UTC (permalink / raw)
To: Po-Hsu Lin; +Cc: ltp
Hi Po-Hsu Lin,
> The patch adds parsing for CONFIG_MODULE_SIG_FORCE kernel config,
> which will make tests expect an EKEYREJECTED error like using the
> 'module.sig_enforce' parameter.
Thanks, merged!
> Patch tested on kernel with CONFIG_MODULE_SIG_FORCE=y and it's
> working as expected.
+1
We might want to refactor the code to single place (DRY), but that can be done
later (we have lib/tst_module.c, which is using an old API because shared
between old and new code, but it looks like all tests has been converted to new
API, thus lib/tst_module.c could be convert to new API as well and then add
these checks into).
Kind regards,
Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-12-27 12:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-23 4:19 [LTP] [PATCH] {delete, finit, init}_module0[1-3]: Handle CONFIG_MODULE_SIG_FORCE Po-Hsu Lin
2024-12-27 12:46 ` Petr Vorel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox