From: Li Wang <li.wang@linux.dev>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH] ima: rewrite ima_mmap auxiliary with TST_NO_DEFAULT_MAIN
Date: Thu, 7 May 2026 17:46:43 +0800 [thread overview]
Message-ID: <20260507094643.47079-1-li.wang@linux.dev> (raw)
Commit 7276e7c154 ("ima_violations.sh: ima_mmap.c: Replace sleep with
checkpoints") called tst_reinit() inside the run() callback of a
struct tst_test based binary. This is incorrect because the test
framework has already initialized the IPC during setup, and calling
tst_reinit() re-maps the shared memory to the parent shell's IPC
region, corrupting the C binary's own test infrastructure.
Fix this by converting ima_mmap to a TST_NO_DEFAULT_MAIN helper
binary. In this mode there is no prior framework initialization, so
tst_reinit() correctly attaches to the parent shell test's shared
memory for checkpoint communication, following the same pattern used
by other LTP helper binaries (e.g. execvp01_child).
Fixes: 7276e7c154 ("ima_violations.sh: ima_mmap.c: Replace sleep with checkpoints")
Signed-off-by: Li Wang <li.wang@linux.dev>
---
.../security/integrity/ima/src/ima_mmap.c | 40 ++++++-------------
.../integrity/ima/tests/ima_violations.sh | 5 +--
2 files changed, 14 insertions(+), 31 deletions(-)
diff --git a/testcases/kernel/security/integrity/ima/src/ima_mmap.c b/testcases/kernel/security/integrity/ima/src/ima_mmap.c
index 09b22fd4f..1861147f8 100644
--- a/testcases/kernel/security/integrity/ima/src/ima_mmap.c
+++ b/testcases/kernel/security/integrity/ima/src/ima_mmap.c
@@ -7,46 +7,30 @@
* Mimi Zohar <zohar@us.ibm.com>
*/
+#define TST_NO_DEFAULT_MAIN
#include "tst_test.h"
#define MMAPSIZE 1024
-static char *filename;
-static void *file;
-static int fd;
-
-static void cleanup(void)
+int main(int argc, char *argv[])
{
- if (file)
- SAFE_MUNMAP(file, MMAPSIZE);
-
- if (fd > 0)
- SAFE_CLOSE(fd);
-}
+ int fd;
+ void *file;
-static void run(void)
-{
- if (!filename)
- tst_brk(TBROK, "missing filename (-f filename)");
+ tst_reinit();
- fd = SAFE_OPEN(filename, O_CREAT | O_RDWR, S_IRWXU);
+ if (argc != 2)
+ tst_brk(TBROK, "usage: ima_mmap <filename>");
+ fd = SAFE_OPEN(argv[1], O_CREAT | O_RDWR, S_IRWXU);
file = SAFE_MMAP(NULL, MMAPSIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
SAFE_CLOSE(fd);
- tst_reinit();
- TST_CHECKPOINT_WAIT(0);
- /* keep running until ima_violations.sh open and close file */
+ /* Waiting until ima_violations.sh open and close file */
TST_CHECKPOINT_WAKE_AND_WAIT(0);
+ SAFE_MUNMAP(file, MMAPSIZE);
tst_res(TPASS, "test completed");
-}
-static struct tst_test test = {
- .options = (struct tst_option[]) {
- {"f:", &filename, "File to mmap"},
- {}
- },
- .test_all = run,
- .cleanup = cleanup,
-};
+ return 0;
+}
diff --git a/testcases/kernel/security/integrity/ima/tests/ima_violations.sh b/testcases/kernel/security/integrity/ima/tests/ima_violations.sh
index d7dcd077b..6271bba35 100755
--- a/testcases/kernel/security/integrity/ima/tests/ima_violations.sh
+++ b/testcases/kernel/security/integrity/ima/tests/ima_violations.sh
@@ -170,11 +170,10 @@ test3()
echo 'testing testing' > $FILE
- ima_mmap -f $FILE &
+ ima_mmap $FILE &
pid=$!
- # wait for violations appear in logs
- TST_CHECKPOINT_WAKE_AND_WAIT 0
+ TST_CHECKPOINT_WAIT 0
open_file_read
close_file_read
--
2.54.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next reply other threads:[~2026-05-07 9:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-07 9:46 Li Wang [this message]
2026-05-07 10:21 ` [LTP] [PATCH] ima: rewrite ima_mmap auxiliary with TST_NO_DEFAULT_MAIN Cyril Hrubis
2026-05-07 11:34 ` Andrea Cervesato via ltp
2026-05-07 12:05 ` Li Wang
2026-05-07 11:58 ` [LTP] " linuxtestproject.agent
2026-05-12 16:45 ` [LTP] [PATCH] " Petr Vorel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260507094643.47079-1-li.wang@linux.dev \
--to=li.wang@linux.dev \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox