From fd4bbc6ceeecee320582f347d801d88d027410be Mon Sep 17 00:00:00 2001 From: raylee Date: Fri, 23 Jan 2026 02:38:06 +0000 Subject: [PATCH] Add mprotect merge after split mapping test Signed-off-by: raylee --- .../initramfs/src/apps/mmap/mmap_and_mprotect.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/initramfs/src/apps/mmap/mmap_and_mprotect.c b/test/initramfs/src/apps/mmap/mmap_and_mprotect.c index 4c5cf537e..4266ae383 100644 --- a/test/initramfs/src/apps/mmap/mmap_and_mprotect.c +++ b/test/initramfs/src/apps/mmap/mmap_and_mprotect.c @@ -10,6 +10,9 @@ #include "../test.h" #define PAGE_SIZE 4096 +#ifndef MAY_READ +#define MAY_READ (1 << 3) +#endif const char *filename = "testfile"; FN_TEST(mprotect_shared_writable_mapping_on_read_only_file) @@ -54,3 +57,17 @@ FN_TEST(mprotect_private_writable_mapping_copy_on_write) TEST_SUCC(unlink(filename)); } END_TEST() + +FN_TEST(mprotect_merge_after_split_mapping) +{ + void *p = CHECK_WITH(mmap(NULL, 2 * PAGE_SIZE, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0), + _ret != MAP_FAILED); + + TEST_SUCC(mprotect(p, PAGE_SIZE, PROT_READ)); + + // Trigger an update + merge. + TEST_SUCC( + mprotect(p, 2 * PAGE_SIZE, PROT_READ | PROT_WRITE | MAY_READ)); +} +END_TEST()